Jump to content

Busti

Forge Modder
  • Posts

    624
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Busti

  1. Oftentimes it happens that someone asks a question regarding a specific version of Minecraft. Most people tend to add the version number in brackets like this [1.12.1] but sometimes people forget about it which can cause quite a lot of confusion. It would be nice to have that enforced, use the new forums tagging system for this purpose or at least have a friently reminder for it in the topic creation screen. Thoughts?
      • 1
      • Like
  2. Create your loot-tables resource location like this: final ResourceLocation lootTable = new ResourceLocation(yourMODID, "loot_table_name_without_modid_folder_and_fileending"); Register your loot-tables resource location in preInit like this: LootTableList.register(yourLootTableResourceLocation); Then pass it along in your entity as before.
  3. Something like blockbench might work for you. Get it here: http://blockbench.net/
  4. Good point @Draco18s
  5. Is there a way to simply write inline code in replys? Currently I change the font like this but it is not very pleasant. Markup uses the ` char but that obviously would not work here.
  6. Set the flag setTickRandomly(true); in your block. Then Override randomTick in your block class. Create a x,y,z for loop around your block using the givens BlockPos : pos.getX() pos.getY() and pos.getZ() as your origin. Use worldIn.getBlockState(pos) == Blocks.AIR.getDeraultState() to check if a block is air. You can then check the block underneath it for not being air using almost the same code in order to get blocks with air over them around your block. Once you found such a block set it aflame using worldIn.setBlockState(pos, Blocks.FIRE.getDefaultState()) BUT WAIT! That sets all blocks on fire every time a random tick happens! Use the given `random` to only set a couple blocks aflame like this: if (random.nextFloat() < 0.1f) { worldIn.setBlockState(pos, Blocks.FIRE.getDefaultState()); } Where the floating point number is the chance of a block catching fire.
  7. Hello everyone, I am back to modding after some years of absence yay! So lets get right back to business. As of 1.12 recipes can (and should?) be created using json files. Some recipes however return multiple items, for example the cake recipe which yields an empty Bucket as well as a cake. The cake.json recipe however contains no trace of this behaviour. My best guess would be that it is achived by adding some code in the cake or milk item class, which I cannot do since the items used in the recipe are all vanilla items. So here is my question: Is there an event I can use to return a second item when my recipe is being crafted? Thanks in advance, Busti
  8. I guess that you are trying to make a bukkit / spigot server Plugin. This is not the correct forum for that. A good place to start would be: https://www.spigotmc.org/wiki/spigot-plugin-development/ In order to make your plugin you would have to register an event that fires when a player uses a sword. That event would spawn a fireball entity and launch it into the direction the player is looking. If you need help coding that plugin go here: https://www.spigotmc.org/forums/spigot-plugin-development.52/ Good luck!
  9. Yes the file is called ore1.json IT does find the file since the block is rendering correctly. The setCustomModelResourceLocation() method uses the registry name like this: ModelLoader.setCustomModelResourceLocation(itemBlock, 0, new ModelResourceLocation(itemBlock.getRegistryName(), "inventory")); [17:08:16] [Client thread/ERROR]: Exception loading model for variant technica:ore1#inventory for item "technica:ore1", normal location exception: net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model technica:item/ore1 with loader VanillaLoader.INSTANCE, skipping at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?] at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:298) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:169) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:128) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:120) [simpleReloadableResourceManager.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:535) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:381) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?] Caused by: java.io.FileNotFoundException: technica:models/item/ore1.json at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:68) ~[FallbackResourceManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:64) ~[simpleReloadableResourceManager.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:310) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.access$1100(ModelLoader.java:99) ~[ModelLoader.class:?] at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:844) ~[ModelLoader$VanillaLoader.class:?] at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?] ... 25 more [17:08:16] [Client thread/ERROR]: Exception loading model for variant technica:ore1#inventory for item "technica:ore1", blockstate location exception: net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model technica:ore1#inventory with loader VariantLoader.INSTANCE, skipping at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?] at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:306) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:169) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:128) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:120) [simpleReloadableResourceManager.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:535) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:381) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?] Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:75) ~[ModelBlockDefinition.class:?] at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1159) ~[ModelLoader$VariantLoader.class:?] at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?] ... 25 more [17:08:18] [Client thread/INFO]: Injecting itemstacks [17:08:18] [Client thread/INFO]: Itemstack injection complete [17:08:18] [Client thread/INFO]: Forge Mod Loader has successfully loaded 4 mods [17:08:18] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Technica [17:08:21] [Client thread/INFO]: SoundSystem shutting down... [17:08:21] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com [17:08:21] [sound Library Loader/INFO]: Starting up SoundSystem... [17:08:21] [Thread-10/INFO]: Initializing LWJGL OpenAL [17:08:21] [Thread-10/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [17:08:21] [Thread-10/INFO]: OpenAL initialized. [17:08:22] [sound Library Loader/INFO]: Sound engine started [17:08:26] [Client thread/INFO]: Max texture size: 16384 [17:08:26] [Client thread/INFO]: Created: 1024x512 textures-atlas [17:08:28] [Client thread/ERROR]: Exception loading model for variant technica:ore1#inventory for item "technica:ore1", normal location exception: net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model technica:item/ore1 with loader VanillaLoader.INSTANCE, skipping at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?] at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:298) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:169) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:128) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:130) [simpleReloadableResourceManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:111) [simpleReloadableResourceManager.class:?] at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:792) [Minecraft.class:?] at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:323) [FMLClientHandler.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:554) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:381) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?] Caused by: java.io.FileNotFoundException: technica:models/item/ore1.json at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:68) ~[FallbackResourceManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:64) ~[simpleReloadableResourceManager.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:310) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.access$1100(ModelLoader.java:99) ~[ModelLoader.class:?] at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:844) ~[ModelLoader$VanillaLoader.class:?] at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?] ... 28 more [17:08:28] [Client thread/ERROR]: Exception loading model for variant technica:ore1#inventory for item "technica:ore1", blockstate location exception: net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model technica:ore1#inventory with loader VariantLoader.INSTANCE, skipping at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?] at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:306) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:169) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:128) ~[ModelLoader.class:?] at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:130) [simpleReloadableResourceManager.class:?] at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:111) [simpleReloadableResourceManager.class:?] at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:792) [Minecraft.class:?] at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:323) [FMLClientHandler.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:554) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:381) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60] at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?] Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:75) ~[ModelBlockDefinition.class:?] at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1159) ~[ModelLoader$VariantLoader.class:?] at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?] ... 28 more
  10. So I tried it without a model in models/item/registryname.json and just with the blockstate. But it throws a fileNotFoundException. Are there some extra steps I have to follow to make it use the blockstate json file?
  11. That is the best thing lex and cpw could possibly add to the system! I will marked the post as solved now. Thank you!
  12. I just realised probably not...
  13. So I don't have to have a single file for every color for example. Phew. Thank you. Edit: Would it be possible to recycle the blockstate json to work for the item as well?
  14. Doesn't that make forge blockstates obsolete since you still have to have a Model for every single item Metadata?
  15. But wait, doesn't passing the metadata defy all the logic behind blockstates being the "replacement" for metadata? Or is that concept history?
  16. Well it could be done using only the .json files. Why would we go back to using code one version later. It does not make sense. And Yes I have seen the post. No need to be so bitchy about it.
  17. Hi, I am updating to 1.9 and created a very basic block to test stuff. This is my blockstate.json : { "forge_marker": 1, "defaults": { "textures": { "all": "technica:blocks/rubberlogTop" }, "model": "cube_all", "uvlock": true }, "variants": { "normal": [{ }] } } The block is rendering correctly in the world. How can I make it render in the inventory? I guess I just forgot something but I haven't been modding in a while and I cant remember what. Greetings, Busti
  18. Well then I can continue modding 1.8 with ease. If such an option would be missing I probably would have gone back 1.7.10 Just one last question. Your answer didn't make it clear for me whether it is implemented by the TESR or not.
  19. A nice source should be Inv Tweaks which is open source and on github.
  20. Shouldn't he also be able to re-register his own Container / GUI for the chest?
  21. I assume you want to alter the behaviour of a vanilla Chest? If so there is no event that is fired when the player attempts to take an Item out of an Inventory slot. The simplest way to archive this would be to make a new block that behaves like a chest and that uses the same container classes etc. and then extend those classes to change their behavior. I assume that it is also possible using reflection but that is slow and more difficult but then you wouldn't need to make a new block.
  22. I dont want to generate a model I just want to write vertices into the Tessellator while the world is being written into The tessellator. Whit something similar to the 1.7 ISimpleBlockRenderingHandler Interface.
  23. Where do I implement these? In the TESR?
  24. I know that the TESR exists. The interface I was refering to is implemented by the TESR. But the TESR however renders every display tick. So if I were to render a pipe it would be rendered every frame or about 60 times per second. This is useful for animations but it causes lag. The interface implemented a method where the vertices are only saved into the world buffer, which stores all static vertecy data of the world and is drawn at once. This is what makes minecraft itself so efficient and is a great method to draw stuff witout creating much lag. But sadly it has been removed. The only way to add content to the world buffer I know of is with .json files and those are highly inefficient when it comes to stuff that has a variety of different states. Fire for example uses 92 .json files.
  25. In 1.7.1 we had this useful little class called ISimpleBlockRenderingHandler. It implememted a useful little method called: @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { return false; } Since 1.8 Mojang obviously doesn't want us to use this anymore. And provides the .json files instead. But these are rather useless for complicated rendering tasks. Is there a simple solution to render TileEntitys directly into the World Buffer using a similar solution in 1.8?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.