Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.8] Custom Bounding Box


Reygok
 Share

Recommended Posts

I created a block that is made up of up to 8 little blocks, so you can build a slab, a stair, or anything else possible with this configuration. Now, my problem is, the bounding box of the block has to be exactly the shape of the texture. How can I make a bounding box that's not a cuboid?

Link to comment
Share on other sites

	
        @SubscribeEvent
public void drawSelectionBox(DrawBlockHighlightEvent e)
{
	World world = e.player.worldObj;
	EntityPlayer player = e.player;
	float partialTicks = e.partialTicks;
	if(world.getTileEntity(e.target.getBlockPos()) instanceof TileEntityTinyDirt)
	{
		GlStateManager.enableBlend();
		GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
		GlStateManager.color(0.0F, 0.0F, 0.0F, 0.4F);
		GL11.glLineWidth(2.0F);
		GlStateManager.disableTexture2D();
		GlStateManager.depthMask(false);
		BlockPos blockpos = e.target.getBlockPos();
		Block block = world.getBlockState(blockpos).getBlock();

		if (block.getMaterial() != Material.air && world.getWorldBorder().contains(blockpos))
		{
			double d0 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)partialTicks;
			double d1 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)partialTicks;
			double d2 = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)partialTicks;
			AxisAlignedBB box = 
					new AxisAlignedBB(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
					//.expand(0.0020000000949949026D, 0.0020000000949949026D, 0.0020000000949949026D)
					//.offset(-d0, -d1, -d2);

			Tessellator tessellator = Tessellator.getInstance();
			WorldRenderer worldrenderer = tessellator.getWorldRenderer();
			worldrenderer.startDrawing(3);

			//worldrenderer.addVertex(box.minX, box.minY, box.minZ);
			//worldrenderer.addVertex(box.minX+0.5, box.minY, box.minZ);
			//worldrenderer.addVertex(box.minX, box.minY, box.minZ);
			//worldrenderer.addVertex(box.minX, box.minY, box.minZ);
			tessellator.draw();
		}

		GlStateManager.depthMask(true);
		GlStateManager.enableTexture2D();
		GlStateManager.disableBlend();
	}
}

 

I can't seem to change the bounding box of my block. I'm not sure what the 3 parameters for addVertex do, the info I find online is inconsistent.

And shouldn't the box be "not there" with this code? Since the AxisAlignedBB I start with is empty.

Link to comment
Share on other sites

Oh yeah, just found it out, I thought I had to run drawSelectionBox myself. Well, now it slowly starts to work as intended. Small problem: The correct boxes are only drawn as long as I look at the last part of the texture that's loaded, when I look at another "part" of my block, I look through. I know why, but I don't know how to fix it.

 

The problem is that I'm using setBlockBounds often, for setting the collision box for every tiny block, and also for setting the wireframe now.

I tried without using setBlockBounds, but then I don't get any collisions anymore...

 

I have this inside the Block class:

 

@Override
public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
{
	return new AxisAlignedBB(0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
}

@Override
public void addCollisionBoxesToList(World worldIn, BlockPos pos, IBlockState state, AxisAlignedBB mask, List list, Entity collidingEntity)
    {
	TileEntityTinyDirt tileEntity = (TileEntityTinyDirt) worldIn.getTileEntity(pos);
	boolean bot_nw = tileEntity.isBot_nw();
	boolean bot_ne = tileEntity.isBot_ne();
	boolean bot_se = tileEntity.isBot_se();
	boolean bot_sw = tileEntity.isBot_sw();
	boolean top_nw = tileEntity.isTop_nw();
	boolean top_ne = tileEntity.isTop_ne();
	boolean top_se = tileEntity.isTop_se();
	boolean top_sw = tileEntity.isTop_sw();

	if(bot_nw)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.0, 0.0, 0.0, 0.5, 0.5, 0.5);
		addCollisionBox(box, list, mask);
	}
	if(bot_ne)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.5F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F);
		addCollisionBox(box, list, mask);
	}
	if(bot_se)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.5F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F);
		addCollisionBox(box, list, mask);
	}
	if(bot_sw)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.0F, 0.0F, 0.5F, 0.5F, 0.5F, 1.0F);
		addCollisionBox(box, list, mask);
	}

	if(top_nw)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.0F, 0.5F, 0.0F, 0.5F, 1.0F, 0.5F);
		addCollisionBox(box, list, mask);
	}
	if(top_ne)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.5F, 0.5F, 0.0F, 1.0F, 1.0F, 0.5F);
		addCollisionBox(box, list, mask);
	}
	if(top_se)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.5F, 0.5F, 0.5F, 1.0F, 1.0F, 1.0F);
		addCollisionBox(box, list, mask);
	}
	if(top_sw)
	{
		AxisAlignedBB box = new AxisAlignedBB(0.0F, 0.5F, 0.5F, 0.5F, 1.0F, 1.0F);
		addCollisionBox(box, list, mask);
	}
    }

public void addCollisionBox(AxisAlignedBB box, List list, AxisAlignedBB mask)
{
        if (box != null && mask.intersectsWith(box))
        {
            list.add(box);
        }
}

 

And this as the Event:

 

@SubscribeEvent
public void drawSelectionBox(DrawBlockHighlightEvent e)
{
	///*
	if(e.target.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
	{
		BlockPos blockpos = e.target.getBlockPos();
		World world = e.player.worldObj;
		TileEntity tileEntity = world.getTileEntity(blockpos);

		if(tileEntity instanceof TileEntityTinyDirt)
		{
			TileEntityTinyDirt tileEntityTinyDirt = (TileEntityTinyDirt) tileEntity; 
			TinyDirt block = (TinyDirt) world.getBlockState(blockpos).getBlock();

			if(tileEntityTinyDirt.isBot_nw())
			{
				block.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 0.5F, 0.5F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isBot_ne())
			{
				block.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isBot_se())
			{
				block.setBlockBounds(0.5F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isBot_sw())
			{
				block.setBlockBounds(0.0F, 0.0F, 0.5F, 0.5F, 0.5F, 1.0F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isTop_nw())
			{
				block.setBlockBounds(0.0F, 0.5F, 0.0F, 0.5F, 1.0F, 0.5F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isTop_ne())
			{
				block.setBlockBounds(0.5F, 0.5F, 0.0F, 1.0F, 1.0F, 0.5F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isTop_se())
			{
				block.setBlockBounds(0.5F, 0.5F, 0.5F, 1.0F, 1.0F, 1.0F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			if(tileEntityTinyDirt.isTop_sw())
			{
				block.setBlockBounds(0.0F, 0.5F, 0.5F, 0.5F, 1.0F, 1.0F);
				e.context.drawSelectionBox(e.player, e.target, 0, e.partialTicks);
			}
			e.setCanceled(true);

		}

		//*/
	}
}

 

Link to comment
Share on other sites

Hm yeah, now the wireframe shows correctly; however, it is completely useless now. I thought the wireframe determined where exactly you could click, but that's the bounding box. Now this bounding box is always a full cube, so I can't place several blocks "inside it" anymore. Or, well I can, if I modify the "pos = pos.offset(side);" condition, but I'll often get the wrong hitY value.

 

So there is no way of actually setting to real blockBounds to a complex shape?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • good news, got it to work. just had to delete everything in my config file
    • i tried doing this but cannot find anything in the source code. i looked in 'BlockPumpkin.class' and 'ItemArmor.class' but neither of them have anything about putting a pumpkin on your head. any help is appreciated.
    • ive been trying to play minecraft 1.16.5 forge and it keeps crashing with this message. ive tried uninstalling and reinstalling, updating drivers, everything please help heres the crash report    ---- Minecraft Crash Report ---- // Why did you do that? Time: 5/20/22 7:58 PM Description: Rendering overlay net.minecraftforge.fml.config.ConfigFileTypeHandler$ConfigLoadingException: Failed loading config file forge-client.toml of type CLIENT for modid forge     at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:47) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigFileTypeHandler$$Lambda$3608/395799328.apply(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.config.ConfigTracker.openConfig(ConfigTracker.java:90) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker.lambda$loadConfigs$1(ConfigTracker.java:69) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker$$Lambda$3607/1686000157.accept(Unknown Source) ~[?:?] {}     at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] {}     at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.config.ConfigTracker.loadConfigs(ConfigTracker.java:69) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader.lambda$null$18(ModLoader.java:194) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader$$Lambda$3605/657318410.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.DistExecutor.unsafeRunWhenOn(DistExecutor.java:111) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader.loadMods(ModLoader.java:194) ~[?:?] {re:classloading}     at net.minecraftforge.fml.client.ClientModLoader.lambda$startModLoading$7(ClientModLoader.java:118) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$3597/933224191.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:109) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2928/312766685.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.client.ClientModLoader.startModLoading(ClientModLoader.java:118) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader.lambda$onResourceReload$2(ClientModLoader.java:100) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$3595/1896539815.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:109) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2928/312766685.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {re:computing_frames}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {} Caused by: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] {}     at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:43) ~[?:?] {re:classloading}     ... 26 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:47) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigFileTypeHandler$$Lambda$3608/395799328.apply(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.config.ConfigTracker.openConfig(ConfigTracker.java:90) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker.lambda$loadConfigs$1(ConfigTracker.java:69) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker$$Lambda$3607/1686000157.accept(Unknown Source) ~[?:?] {}     at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] {}     at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.config.ConfigTracker.loadConfigs(ConfigTracker.java:69) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader.lambda$null$18(ModLoader.java:194) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader$$Lambda$3605/657318410.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.DistExecutor.unsafeRunWhenOn(DistExecutor.java:111) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader.loadMods(ModLoader.java:194) ~[?:?] {re:classloading} -- Overlay render details -- Details:     Overlay name: net.minecraft.client.gui.ResourceLoadProgressGui Stacktrace:     at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:807) ~[?:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:977) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:37) [forge-1.16.5-36.2.35.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$462/1706790953.call(Unknown Source) [forge-1.16.5-36.2.35.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.1.3.jar:?] {} -- System Details -- Details:     Minecraft Version: 1.16.5     Minecraft Version ID: 1.16.5     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 779408696 bytes (743 MB) / 1073741824 bytes (1024 MB) up to 2147483648 bytes (2048 MB)     CPUs: 8     JVM Flags: 10 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -XX:+IgnoreUnrecognizedVMOptions -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     ModLauncher: 8.1.3+8.1.3+main-8.1.x.c94d18ec     ModLauncher launch target: fmlclient     ModLauncher naming: srg     ModLauncher services:          /mixin-0.8.4.jar mixin PLUGINSERVICE          /eventbus-4.0.0.jar eventbus PLUGINSERVICE          /forge-1.16.5-36.2.35.jar object_holder_definalize PLUGINSERVICE          /forge-1.16.5-36.2.35.jar runtime_enum_extender PLUGINSERVICE          /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE          /forge-1.16.5-36.2.35.jar capability_inject_definalize PLUGINSERVICE          /forge-1.16.5-36.2.35.jar runtimedistcleaner PLUGINSERVICE          /mixin-0.8.4.jar mixin TRANSFORMATIONSERVICE          /OptiFine_1.16.5_HD_U_G7%20(1).jar OptiFine TRANSFORMATIONSERVICE          /forge-1.16.5-36.2.35.jar fml TRANSFORMATIONSERVICE      FML: 36.2     Forge: net.minecraftforge:36.2.35     FML Language Providers:          javafml@36.2         minecraft@1     Mod List:          forge-1.16.5-36.2.35-client.jar                   |Minecraft                     |minecraft                     |1.16.5              |COMMON_SET|Manifest: NOSIGNATURE         forge-1.16.5-36.2.35-universal.jar                |Forge                         |forge                         |36.2.35             |COMMON_SET|Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90     Crash Report UUID: 9b0f9a9c-864a-4ea8-af24-ba1f5e17ccea     Launched Version: 1.16.5-forge-36.2.35     Backend library: LWJGL version 3.2.2 build 10     Backend API: Intel(R) UHD Graphics 620 GL version 4.6.0 - Build 27.20.100.9664, Intel     GL Caps: Using framebuffer using OpenGL 3.0     Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'     Type: Client (map_client.txt)     Graphics mode: fancy     Resource Packs:      Current Language: English (US)     CPU: 8x Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz     OptiFine Version: OptiFine_1.16.5_HD_U_G7     OptiFine Build: 20210305-003221     Render Distance Chunks: 32     Mipmaps: 3     Anisotropic Filtering: 1     Antialiasing: 0     Multitexture: false     Shaders: null     OpenGlVersion: 4.6.0 - Build 27.20.100.9664     OpenGlRenderer: Intel(R) UHD Graphics 620     OpenGlVendor: Intel     CpuCount: 8
    • Written against MC 1.14 but has everything https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderfarming/entity/TannerTileEntity.java#L140
    • When opening it, it loaded for a while then crashed. Idk what is causing the crash, anyone willing to help? Here is the crash report: https://pastebin.com/vuG9mpzv    
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.