Everything posted by Tschipp
-
Lang file and item texture not working [1.12]
Make a class called EventHandler and write this: @SubscribeEvent public void onModelRegistry(ModelRegistryEvent event) { ModItems.registerRenders(); } Then, during the Init phase, call MinecraftForge.EVENT_BUS.register(new EventHandler()); Your registerRender() method in your ModItems class needs to look like this: private static void registerRender(Item item) { ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory")); }
-
[1.11.2] Different Block Models based on NBT
Ok, how do I make a runtime model?
-
[1.11.2] Different Block Models based on NBT
I don't think I can use states, I'm making a block that can look like any other block. The tile entity stores a Blockstate value and the block is supposed to look like that blockstate
-
Lang file and item texture not working [1.12]
Something like this: @SubscribeEvent public void onModelRegistry(ModelRegistryEvent event) { ModItems.registerRenders(); }
-
[1.11.2] Different Block Models based on NBT
Yeah sorry I meant TileEntities... long day
-
[1.11.2] Different Block Models based on NBT
I'm trying to make a block (with TileEntity) that uses a different model depending on its NBT. Can anyone point me in a direction, I'm not sure where to start. I've done the same for items, but never for blocks.
-
[1.11.2] Getting strange Errors/Can't join world
Holy crap, that worked. Thanks all
-
[1.11.2] Getting strange Errors/Can't join world
That might be it, gonna check it out EDIT: Looks like player is called "player", but the font renderer is called "fontRendererObj". Gonna check out the Actually additions source code EDIT 2: Weird, actually additions also uses fontRendererObj... I'm gonna try to setupDecompWorkspace again
-
[1.11.2] Getting strange Errors/Can't join world
Yes, If I remove all other mods it works fine. I just have no idea why fields like player or fontRenderer would be missing... IIRC those are client only fields, so the issue might have to do with some client-only stuff. I was working on GUIs for my mod, I might have broken some stuff and just not noticed it... Gonna check
-
[1.11.2] Getting strange Errors/Can't join world
I see that, the error is always the same, but I don't have access to those classes as I'm using them in the mods folder. And it worked fine yesterday evening...
-
[1.11.2] Getting strange Errors/Can't join world
When I got onto my dev environment today, I launched and tried to enter a world. It crashed immediately. Even trying to create a new world crashes me. The weird thing is, I didn't change anything from yesterday, and yesterday it all worked fine. This is one of the errors that I'm getting: [20:22:45] [Server thread/FATAL]: Error executing task java.util.concurrent.ExecutionException: java.lang.NoSuchFieldError: player at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_131] at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_131] at net.minecraft.util.Util.runTask(Util.java:27) [Util.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:753) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:698) [MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156) [IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:547) [MinecraftServer.class:?] at java.lang.Thread.run(Unknown Source) [?:1.8.0_131] Caused by: java.lang.NoSuchFieldError: player at mcjty.theoneprobe.network.PacketGetInfo$Handler.handle(PacketGetInfo.java:110) ~[PacketGetInfo$Handler.class:?] at mcjty.theoneprobe.network.PacketGetInfo$Handler.lambda$onMessage$0(PacketGetInfo.java:103) ~[PacketGetInfo$Handler.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_131] at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_131] at net.minecraft.util.Util.runTask(Util.java:26) ~[Util.class:?] ... 5 more Or this one (similar): [20:27:19] [Netty Server IO #1/ERROR] [FML]: There was a critical exception handling a packet on channel XU2 java.lang.NoSuchFieldError: player at com.rwtema.extrautils2.XUProxy.getPlayerFromNetHandler(XUProxy.java:66) ~[XUProxy.class:?] at com.rwtema.extrautils2.XUProxyClient.getPlayerFromNetHandler(XUProxyClient.java:73) ~[XUProxyClient.class:?] at com.rwtema.extrautils2.network.PacketCodec.decodeInto(PacketCodec.java:53) ~[PacketCodec.class:?] at com.rwtema.extrautils2.network.PacketCodec.decodeInto(PacketCodec.java:18) ~[PacketCodec.class:?] at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:103) ~[FMLIndexedMessageToMessageCodec.class:?] at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:40) ~[FMLIndexedMessageToMessageCodec.class:?] at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:4.0.23.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:4.0.23.Final] at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.class:4.0.23.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) ~[DefaultChannelPipeline.class:4.0.23.Final] at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:4.0.23.Final] at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:111) [FMLProxyPacket.class:?] at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:156) [NetworkManager.class:?] at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:51) [NetworkManager.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.23.Final] at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleServerSideCustomPacket(NetworkDispatcher.java:452) [NetworkDispatcher.class:?] at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:274) [NetworkDispatcher.class:?] at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:73) [NetworkDispatcher.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.23.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final] at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:326) [LocalChannel.class:4.0.23.Final] at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:45) [LocalChannel.class:4.0.23.Final] at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:312) [LocalChannel$5.class:4.0.23.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [SingleThreadEventExecutor.class:4.0.23.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [NioEventLoop.class:4.0.23.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [SingleThreadEventExecutor$2.class:4.0.23.Final] at java.lang.Thread.run(Unknown Source) [?:1.8.0_131] Or this one: [20:28:10] [Client thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.client.event.RenderGameOverlayEvent$Post@6c15605e: java.lang.NoSuchFieldError: fontRenderer at de.ellpeck.actuallyadditions.mod.event.ClientEvents.onGameOverlay(ClientEvents.java:180) ~[ClientEvents.class:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_132_ClientEvents_onGameOverlay_Post.invoke(.dynamic) ~[?:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?] at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185) [EventBus.class:?] at net.minecraftforge.client.GuiIngameForge.post(GuiIngameForge.java:889) [GuiIngameForge.class:?] at net.minecraftforge.client.GuiIngameForge.renderGameOverlay(GuiIngameForge.java:205) [GuiIngameForge.class:?] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1142) [EntityRenderer.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1140) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:407) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_131] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_131] 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_131] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_131] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_131] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] I honestly have no clue how this is happening. Yes, as you can see I'm using other mods, but they worked fine before... I use all of these mods: If you have any Idea what may be causing this, please let me know!
-
[1.11.2] Dynamic Entity Hitboxes
Thanks, gonna try that
-
[1.11.2] Dynamic Entity Hitboxes
Bump
-
[1.11.2] Dynamic Entity Hitboxes
Hi, I have an Animal that grows with a smooth animation (meaning it grows continuously until it reaches adult size). It has a value for its age, and I now want to be able to have a dynamic hitbox, meaning that the animal grows together with the render scale. How would I accomplish such a thing?
-
[1.11.2] Allow certain slots of ItemHandler only be accessible from certain sides
Oh well. Is there a place where I can submit a feature request for forge?
-
[1.11.2] Allow certain slots of ItemHandler only be accessible from certain sides
Yeah, does that mean I need a different handler for the input slot?
-
[1.11.2] Allow certain slots of ItemHandler only be accessible from certain sides
With the old IInventory, you could specify which slots would be accessed from what side. How can I do the same with ItemHandlers? I want to make an input slot (0) that allows the player to remove the item, but not pipes (or only from below), so that the process of the machine doesn't get interrupted by the pipe pulling out the ingredients. In short: I want the pipes to be able to only access the output slots (1 and 2). I currently have this code: package tschipp.pathology.tileentity.handler; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.Constants; import net.minecraftforge.items.ItemStackHandler; import tschipp.pathology.item.PAItems; public class ItemHandlerMicroscope extends ItemStackHandler { public ItemHandlerMicroscope() { super(3); this.setSize(3); } @Override public void deserializeNBT(NBTTagCompound nbt) { setSize(3); NBTTagList tagList = nbt.getTagList("Items", Constants.NBT.TAG_COMPOUND); for (int i = 0; i < tagList.tagCount(); i++) { NBTTagCompound itemTags = tagList.getCompoundTagAt(i); int slot = itemTags.getInteger("Slot"); if (slot >= 0 && slot < stacks.size()) { stacks.set(slot, new ItemStack(itemTags)); } } onLoad(); } @Override public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { if(slot == 0 && !stack.isEmpty() && (stack.getItem() == PAItems.bloodSyringe) || (stack.getItem() == PAItems.virusSyringe && !stack.hasTagCompound() || !stack.getTagCompound().hasKey("researched") || !stack.getTagCompound().getBoolean("researched"))) return super.insertItem(slot, stack, simulate); else return stack; } public void insertSyringe(int slot, ItemStack stack) { ItemStack slotStack = this.getStackInSlot(slot); int count = slotStack.getCount(); if(count == 0) this.setStackInSlot(slot, stack); else { slotStack.setCount(count + 1); } } } Any help is very much appreciated
-
Automatically generate model Files
Yeah, could do that. Thanks anyway
-
Automatically generate model Files
Well I was just hoping I could do it all from the constructor or whatever, gonna go write a script now
-
Automatically generate model Files
That's a shame, I like automating stuff
-
Automatically generate model Files
Sure, but can I include it in a mod? My thought was of making a library that automatically registers stuff and also generates the jsons
-
Automatically generate model Files
I was wondering if it's possible to generate json model files for things like simple items and blocks. These models would only be generated if the file doesn't already exist in the assets folder, and it would generate it directly in the mod's asset folder. Is such a thing even possible?
-
[1.11.2] FluidHandler capability on buckets
That did the trick, thanks!
-
[1.11.2] FluidHandler capability on buckets
@Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { ItemStack heldItem = playerIn.getHeldItem(hand); TileEntityTrough te = (TileEntityTrough) worldIn.getTileEntity(pos); if (worldIn.isRemote) { return true; } //SOLIDS else if(!heldItem.isEmpty() && heldItem.getItem() == Items.WHEAT) { if((!te.itemHandler.getStackInSlot(0).isEmpty() && te.itemHandler.getStackInSlot(0).getCount() < 3) || te.itemHandler.getStackInSlot(0).isEmpty() && te.fluidHandler.getFluid() == null) { te.itemHandler.insertItem(0, new ItemStack(Items.WHEAT), false); if(!playerIn.isCreative()) heldItem.shrink(1); return true; } } //LIQUIDS else if(hasFluid(heldItem, FluidRegistry.WATER) && te.itemHandler.getStackInSlot(0).isEmpty()) { te.fluidHandler.fill(new FluidStack(FluidRegistry.WATER, 1000), true); worldIn.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ITEM_BUCKET_EMPTY, SoundCategory.PLAYERS, 0.6F, 0.8F); if(!playerIn.isCreative()) FluidUtil.getFluidHandler(heldItem).drain(1000, true); return true; } else if(hasFluid(heldItem, BlockHandler.fluidSlop) && te.itemHandler.getStackInSlot(0).isEmpty()) { te.fluidHandler.fill(new FluidStack(BlockHandler.fluidSlop, 1000), true); worldIn.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.BLOCK_SLIME_PLACE, SoundCategory.PLAYERS, 0.6F, 0.8F); if(!playerIn.isCreative()) { FluidStack fluid = FluidUtil.getFluidHandler(heldItem).drain(1000, true); } return true; } return false; }
-
[1.11.2] FluidHandler capability on buckets
Block#onBlockActivated, but only if !world.isRemote else if(hasFluid(heldItem, BlockHandler.fluidSlop) && te.itemHandler.getStackInSlot(0).isEmpty()) { te.fluidHandler.fill(new FluidStack(BlockHandler.fluidSlop, 1000), true); worldIn.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.BLOCK_SLIME_PLACE, SoundCategory.PLAYERS, 0.6F, 0.8F); if(!playerIn.isCreative()) { FluidStack fluid = FluidUtil.getFluidHandler(heldItem).drain(1000, true); } return true; }
IPS spam blocked by CleanTalk.