BeardlessBrady Posted August 27, 2018 Posted August 27, 2018 I am trying to use an IBakedModel to create a dynamic model for an item. I've been looking at GreyGhosts examples but I start getting confused here: https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe15_item_dynamic_item_model/ChessboardFinalisedModel.java#L135 From then on there are tons of numbers which to me don't really have any correlation as to where they came from so I can't quite understand how to do it in my own implementation. Any help would be appreciated, thanks! Quote
Cadiboo Posted August 28, 2018 Posted August 28, 2018 3 hours ago, BeardlessBrady said: I am trying to use an IBakedModel to create a dynamic model for an item. I've been looking at GreyGhosts examples but I start getting confused here: https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe15_item_dynamic_item_model/ChessboardFinalisedModel.java#L135 From then on there are tons of numbers which to me don't really have any correlation as to where they came from so I can't quite understand how to do it in my own implementation. Any help would be appreciated, thanks! You’ve said that your problem is that your confused, do you want links to some documentation? Or do u want to post your code and your logs and go from there? Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
Animefan8888 Posted August 28, 2018 Posted August 28, 2018 4 hours ago, BeardlessBrady said: Any help would be appreciated, thanks! It would be helpful if you told us which numbers specifically. Quote VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
BeardlessBrady Posted August 28, 2018 Author Posted August 28, 2018 Alright, my confusion is about GreyGhost's example here: https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe15_item_dynamic_item_model/ChessboardFinalisedModel.java#L135 and here: https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe15_item_dynamic_item_model/ChessboardFinalisedModel.java#L212 I'm not understanding how all the math on those lines and below are calculated and it is very overwhelming. I'm trying to figure out how to used IBakedModels. Quote
Animefan8888 Posted August 28, 2018 Posted August 28, 2018 14 minutes ago, BeardlessBrady said: https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe15_item_dynamic_item_model/ChessboardFinalisedModel.java#L135 1/16 is the thickness of the Item ie one pixel. The next number indicates the center of the item(0-1) so .5 is the literal center. The max is the farthest position(farthest from 0) and the min is the closest position(closest to 0). These represent how far in the start and the end are in the z direction. 22 minutes ago, BeardlessBrady said: https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe15_item_dynamic_item_model/ChessboardFinalisedModel.java#L212 These are a little bit beyond me, but basically it is just creating the faces for the baked model. It might be easier to experiment with those values to figure out what they do exactly. But it looks like dimensions of some kind. Quote VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
BeardlessBrady Posted August 28, 2018 Author Posted August 28, 2018 Thats the problem, I wouldnt even know where to start with experimenting with that. What I'm trying to accomplish it creating an item that has 3 layers. Each layer has different variants. I was going to use JSON overrides and predicates but for some reason with that you can only override the entire model not just a layer of one so that requires me to create every combination of each layer. IBakedModel's seem more flexible but this example of how it works just flies over my head. ] Quote
CAS_ual_TY Posted August 28, 2018 Posted August 28, 2018 (edited) Its easier to make just all different overlays and then overlay them onto the item using IBakedModel. So my item has 6 different layers overlayed onto it. For each layer I have made the different json models and textures, I have not done any combinations, those are done in code. Ill just share my code with you, I think its pretty self explaining, but some comments are there making it easy to understand: @Override public void registerGun(IForgeRegistry<Item> registry, ItemGun gun) { super.registerGun(registry, gun); registeredGuns.add(gun); ModelResourceLocation main = new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/gun", "inventory"); ModelLoader.setCustomModelResourceLocation(gun, 0, main); ArrayList<ModelResourceLocation> list = new ArrayList<ModelResourceLocation>(); list.add(main); int i; int j; Attachment attachment; for(i = 0; i < EnumAttachmentType.values().length; ++i) //All layers { for(j = 0; j < Attachment.getAmmountForSlot(i); ++j) //All attachments per layer { if(gun.canSetAttachment(i, j)) //Check if attachment is compatible { attachment = Attachment.getAttachment(i, j); if(attachment != null && attachment.shouldLoadModel()) //null-attachment exists, as well as some which are not visible { list.add(new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/" + attachment.getModelRL(), "inventory")); //Add MRL to the list } } } } ModelBakery.registerItemVariants(gun, list.toArray(new ModelResourceLocation[list.size()])); //Register all attachment MRLs found so that they will be loaded } @SubscribeEvent public void modelBake(ModelBakeEvent event) { int i; int j; Attachment attachment; ModelResourceLocation mrl; IBakedModel main; IBakedModel[][] models; //These are the attachment models which will be passed onto the gun model for use for(ItemGun gun : ProxyClient.registeredGuns) //Cycle through all guns { models = new IBakedModel[EnumAttachmentType.values().length][]; for(i = 0; i < models.length; ++i) //This represents the layers { models[i] = new IBakedModel[Attachment.getAmmountForSlot(i)]; for(j = 0; j < Attachment.getAmmountForSlot(i); ++j) //Ammount of attachments for each layer { if(gun.canSetAttachment(i, j)) //Check if compatible { attachment = Attachment.getAttachment(i, j); if(attachment != null && attachment.shouldLoadModel()) //Make sure its not null-attachment and the model is needed { models[i][j] = event.getModelRegistry().getObject(new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/" + attachment.getModelRL(), "inventory")); //Add attachment model to the array } } } } mrl = new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/gun", "inventory"); //This is the MRL of the main item (gun) main = event.getModelRegistry().getObject(mrl); //Get the model of the gun event.getModelRegistry().putObject(mrl, new BakedModelGun(main, models)); //Replace model of the gun with custom IBakedModel and pass all the attachment models to it } } public class BakedModelGun implements IBakedModel { /* * The only usage of this class is the item overrides list: * Basically get the itemstack, pass it onto the modelFinal, then return modelFinal for rendering, * so that during the rendering you have information about the itemstack */ private final IBakedModel modelMain; private final BakedModelGunFinalized modelFinal; private final OverridesList overridesList; public BakedModelGun(IBakedModel modelMain, IBakedModel[][] attachmentModels) { this.modelMain = modelMain; this.modelFinal = new BakedModelGunFinalized(this.modelMain, attachmentModels); this.overridesList = new OverridesList(this); } public BakedModelGunFinalized getModelFinal() { return modelFinal; } @Override public ItemOverrideList getOverrides() { return this.overridesList; } @Override public TextureAtlasSprite getParticleTexture() { return this.modelMain.getParticleTexture(); } @Override public List<BakedQuad> getQuads(IBlockState arg0, EnumFacing arg1, long arg2) { return this.modelMain.getQuads(arg0, arg1, arg2); } @Override public boolean isAmbientOcclusion() { return this.modelMain.isAmbientOcclusion(); } @Override public boolean isBuiltInRenderer() { return this.modelMain.isBuiltInRenderer(); } @Override public boolean isGui3d() { return this.modelMain.isGui3d(); } private static class OverridesList extends ItemOverrideList { private BakedModelGun modelGun; public OverridesList(BakedModelGun modelGun) { super(Collections.EMPTY_LIST); this.modelGun = modelGun; } @Override public IBakedModel handleItemState(IBakedModel originalModel, ItemStack itemStack, World world, EntityLivingBase entity) { return this.modelGun.getModelFinal().setCurrentItemStack(itemStack); } } } public class BakedModelGunFinalized implements IBakedModel { private final IBakedModel modelMain; private final IBakedModel[][] attachmentModels; private ItemStack itemStack; public BakedModelGunFinalized(IBakedModel modelMain, IBakedModel[][] attachmentModels) { this.modelMain = modelMain; this.attachmentModels = attachmentModels; this.itemStack = null; } public BakedModelGunFinalized setCurrentItemStack(ItemStack itemStack) { this.itemStack = itemStack; return this; } @Override public ItemOverrideList getOverrides() { return this.modelMain.getOverrides(); } @Override public TextureAtlasSprite getParticleTexture() { return this.modelMain.getParticleTexture(); } @Override public List<BakedQuad> getQuads(IBlockState arg0, EnumFacing arg1, long arg2) { ArrayList<BakedQuad> list = new ArrayList<BakedQuad>(); List<BakedQuad> list1 = this.modelMain.getQuads(arg0, arg1, arg2); ItemGun gun = (ItemGun) this.itemStack.getItem(); Paint paint = gun.<Paint>getAttachmentCalled(this.itemStack, EnumAttachmentType.PAINT.getSlot()); IBakedModel model; if(paint != null && paint.shouldRegister()) { model = this.attachmentModels[EnumAttachmentType.PAINT.getSlot()][paint.getID()]; if(model != null) { list1 = model.getQuads(arg0, arg1, arg2); } } if(list1 != null && !list1.isEmpty()) { list.addAll(list1); } List<BakedQuad> list2; Attachment attachment; for(int i = 0; i < EnumAttachmentType.values().length; ++i) { attachment = gun.getAttachment(itemStack, i); if(attachment != null && attachment.shouldRender()) { model = this.attachmentModels[i][attachment.getID()]; if(model != null) { list2 = model.getQuads(arg0, arg1, arg2); if(list2 != null && !list2.isEmpty()) { list.addAll(list2); } } } } return list; } @Override public boolean isAmbientOcclusion() { return this.modelMain.isAmbientOcclusion(); } @Override public boolean isBuiltInRenderer() { return this.modelMain.isBuiltInRenderer(); } @Override public boolean isGui3d() { return this.modelMain.isGui3d(); } private static final Matrix4f NULL_MATRIX = new Matrix4f(); @Override public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType transformType) { if(transformType == TransformType.FIRST_PERSON_RIGHT_HAND) { EntityPlayer entityPlayer = Minecraft.getMinecraft().player; if(entityPlayer != null && !entityPlayer.isSprinting() && !entityPlayer.isSneaking()) { if(entityPlayer.getHeldItemMainhand().getItem() instanceof ItemGun && entityPlayer.getHeldItemOffhand().isEmpty() && Minecraft.getMinecraft().gameSettings.keyBindUseItem.isKeyDown()) { ItemStack itemStack = entityPlayer.getHeldItemMainhand(); ItemGun gun = (ItemGun) itemStack.getItem(); Optic optic = gun.<Optic>getAttachmentCalled(itemStack, EnumAttachmentType.OPTIC.getSlot()); if(optic != null && optic.canAim()) { return Pair.of(this, NULL_MATRIX); } } } } return Pair.of(this, this.modelMain.handlePerspective(transformType).getRight()); } } Edited August 28, 2018 by CAS_ual_TY Quote https://github.com/CAS-ual-TY/Visibilis [1.14] How to Villagers, Trades, Professions, Fix Trades https://minecraft.curseforge.com/projects/gun-customization-infinity / https://github.com/CAS-ual-TY/GunCus https://minecraft.curseforge.com/projects/ygo-dueling-mod https://minecraft.curseforge.com/projects/mundus-magicus https://minecraft.curseforge.com/projects/deuf-duplicate-entity-uuid-fix
Cadiboo Posted August 29, 2018 Posted August 29, 2018 12 hours ago, CAS_ual_TY said: Its easier to make just all different overlays and then overlay them onto the item using IBakedModel. So my item has 6 different layers overlayed onto it. For each layer I have made the different json models and textures, I have not done any combinations, those are done in code. Ill just share my code with you, I think its pretty self explaining, but some comments are there making it easy to understand: @Override public void registerGun(IForgeRegistry<Item> registry, ItemGun gun) { super.registerGun(registry, gun); registeredGuns.add(gun); ModelResourceLocation main = new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/gun", "inventory"); ModelLoader.setCustomModelResourceLocation(gun, 0, main); ArrayList<ModelResourceLocation> list = new ArrayList<ModelResourceLocation>(); list.add(main); int i; int j; Attachment attachment; for(i = 0; i < EnumAttachmentType.values().length; ++i) //All layers { for(j = 0; j < Attachment.getAmmountForSlot(i); ++j) //All attachments per layer { if(gun.canSetAttachment(i, j)) //Check if attachment is compatible { attachment = Attachment.getAttachment(i, j); if(attachment != null && attachment.shouldLoadModel()) //null-attachment exists, as well as some which are not visible { list.add(new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/" + attachment.getModelRL(), "inventory")); //Add MRL to the list } } } } ModelBakery.registerItemVariants(gun, list.toArray(new ModelResourceLocation[list.size()])); //Register all attachment MRLs found so that they will be loaded } @SubscribeEvent public void modelBake(ModelBakeEvent event) { int i; int j; Attachment attachment; ModelResourceLocation mrl; IBakedModel main; IBakedModel[][] models; //These are the attachment models which will be passed onto the gun model for use for(ItemGun gun : ProxyClient.registeredGuns) //Cycle through all guns { models = new IBakedModel[EnumAttachmentType.values().length][]; for(i = 0; i < models.length; ++i) //This represents the layers { models[i] = new IBakedModel[Attachment.getAmmountForSlot(i)]; for(j = 0; j < Attachment.getAmmountForSlot(i); ++j) //Ammount of attachments for each layer { if(gun.canSetAttachment(i, j)) //Check if compatible { attachment = Attachment.getAttachment(i, j); if(attachment != null && attachment.shouldLoadModel()) //Make sure its not null-attachment and the model is needed { models[i][j] = event.getModelRegistry().getObject(new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/" + attachment.getModelRL(), "inventory")); //Add attachment model to the array } } } } mrl = new ModelResourceLocation(GunCus.MOD_ID + ":" + gun.getModelRL() + "/gun", "inventory"); //This is the MRL of the main item (gun) main = event.getModelRegistry().getObject(mrl); //Get the model of the gun event.getModelRegistry().putObject(mrl, new BakedModelGun(main, models)); //Replace model of the gun with custom IBakedModel and pass all the attachment models to it } } public class BakedModelGun implements IBakedModel { /* * The only usage of this class is the item overrides list: * Basically get the itemstack, pass it onto the modelFinal, then return modelFinal for rendering, * so that during the rendering you have information about the itemstack */ private final IBakedModel modelMain; private final BakedModelGunFinalized modelFinal; private final OverridesList overridesList; public BakedModelGun(IBakedModel modelMain, IBakedModel[][] attachmentModels) { this.modelMain = modelMain; this.modelFinal = new BakedModelGunFinalized(this.modelMain, attachmentModels); this.overridesList = new OverridesList(this); } public BakedModelGunFinalized getModelFinal() { return modelFinal; } @Override public ItemOverrideList getOverrides() { return this.overridesList; } @Override public TextureAtlasSprite getParticleTexture() { return this.modelMain.getParticleTexture(); } @Override public List<BakedQuad> getQuads(IBlockState arg0, EnumFacing arg1, long arg2) { return this.modelMain.getQuads(arg0, arg1, arg2); } @Override public boolean isAmbientOcclusion() { return this.modelMain.isAmbientOcclusion(); } @Override public boolean isBuiltInRenderer() { return this.modelMain.isBuiltInRenderer(); } @Override public boolean isGui3d() { return this.modelMain.isGui3d(); } private static class OverridesList extends ItemOverrideList { private BakedModelGun modelGun; public OverridesList(BakedModelGun modelGun) { super(Collections.EMPTY_LIST); this.modelGun = modelGun; } @Override public IBakedModel handleItemState(IBakedModel originalModel, ItemStack itemStack, World world, EntityLivingBase entity) { return this.modelGun.getModelFinal().setCurrentItemStack(itemStack); } } } public class BakedModelGunFinalized implements IBakedModel { private final IBakedModel modelMain; private final IBakedModel[][] attachmentModels; private ItemStack itemStack; public BakedModelGunFinalized(IBakedModel modelMain, IBakedModel[][] attachmentModels) { this.modelMain = modelMain; this.attachmentModels = attachmentModels; this.itemStack = null; } public BakedModelGunFinalized setCurrentItemStack(ItemStack itemStack) { this.itemStack = itemStack; return this; } @Override public ItemOverrideList getOverrides() { return this.modelMain.getOverrides(); } @Override public TextureAtlasSprite getParticleTexture() { return this.modelMain.getParticleTexture(); } @Override public List<BakedQuad> getQuads(IBlockState arg0, EnumFacing arg1, long arg2) { ArrayList<BakedQuad> list = new ArrayList<BakedQuad>(); List<BakedQuad> list1 = this.modelMain.getQuads(arg0, arg1, arg2); ItemGun gun = (ItemGun) this.itemStack.getItem(); Paint paint = gun.<Paint>getAttachmentCalled(this.itemStack, EnumAttachmentType.PAINT.getSlot()); IBakedModel model; if(paint != null && paint.shouldRegister()) { model = this.attachmentModels[EnumAttachmentType.PAINT.getSlot()][paint.getID()]; if(model != null) { list1 = model.getQuads(arg0, arg1, arg2); } } if(list1 != null && !list1.isEmpty()) { list.addAll(list1); } List<BakedQuad> list2; Attachment attachment; for(int i = 0; i < EnumAttachmentType.values().length; ++i) { attachment = gun.getAttachment(itemStack, i); if(attachment != null && attachment.shouldRender()) { model = this.attachmentModels[i][attachment.getID()]; if(model != null) { list2 = model.getQuads(arg0, arg1, arg2); if(list2 != null && !list2.isEmpty()) { list.addAll(list2); } } } } return list; } @Override public boolean isAmbientOcclusion() { return this.modelMain.isAmbientOcclusion(); } @Override public boolean isBuiltInRenderer() { return this.modelMain.isBuiltInRenderer(); } @Override public boolean isGui3d() { return this.modelMain.isGui3d(); } private static final Matrix4f NULL_MATRIX = new Matrix4f(); @Override public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType transformType) { if(transformType == TransformType.FIRST_PERSON_RIGHT_HAND) { EntityPlayer entityPlayer = Minecraft.getMinecraft().player; if(entityPlayer != null && !entityPlayer.isSprinting() && !entityPlayer.isSneaking()) { if(entityPlayer.getHeldItemMainhand().getItem() instanceof ItemGun && entityPlayer.getHeldItemOffhand().isEmpty() && Minecraft.getMinecraft().gameSettings.keyBindUseItem.isKeyDown()) { ItemStack itemStack = entityPlayer.getHeldItemMainhand(); ItemGun gun = (ItemGun) itemStack.getItem(); Optic optic = gun.<Optic>getAttachmentCalled(itemStack, EnumAttachmentType.OPTIC.getSlot()); if(optic != null && optic.canAim()) { return Pair.of(this, NULL_MATRIX); } } } } return Pair.of(this, this.modelMain.handlePerspective(transformType).getRight()); } } Do you have a GitHub? I’d like to see how you are attaching your attachments to your item gun (capability? NBT?) Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
CAS_ual_TY Posted August 29, 2018 Posted August 29, 2018 18 hours ago, Cadiboo said: Do you have a GitHub? I’d like to see how you are attaching your attachments to your item gun (capability? NBT?) NBT, I planned on making the mod opensource anyways. Ill do that the next days. This is my acc: https://github.com/cas-ual-ty 1 Quote https://github.com/CAS-ual-TY/Visibilis [1.14] How to Villagers, Trades, Professions, Fix Trades https://minecraft.curseforge.com/projects/gun-customization-infinity / https://github.com/CAS-ual-TY/GunCus https://minecraft.curseforge.com/projects/ygo-dueling-mod https://minecraft.curseforge.com/projects/mundus-magicus https://minecraft.curseforge.com/projects/deuf-duplicate-entity-uuid-fix
BeardlessBrady Posted September 28, 2018 Author Posted September 28, 2018 Hey I know it has been a month but unfortunately I have been busy. So I tried to implement it the way you have on your mod @CAS_ual_TY but I can't seem to get it working. I've only done a test scenario just so I can get it to render before I start working on all the parts. Here is my code: https://github.com/BeardlessBrady/Currency-Mod/commit/01f2dfb9380eae52f0fb738eb2fa0f84124d3bd7 Quote
BeardlessBrady Posted September 29, 2018 Author Posted September 29, 2018 I seem to have got something working but when I load the item in the game crashes. Here is the crash report: https://pastebin.com/MPhxtbde And the class in question: https://github.com/BeardlessBrady/Currency-Mod/blob/master-2.0-1.12/src/main/java/beard/modcurrency/client/BakedModelCurrencyFinalized.java#L66 Quote
Draco18s Posted September 29, 2018 Posted September 29, 2018 Where is this invoked from? Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
BeardlessBrady Posted September 29, 2018 Author Posted September 29, 2018 (edited) https://github.com/BeardlessBrady/Currency-Mod/blob/master-2.0-1.12/src/main/java/beard/modcurrency/client/BakedModelCurrency.java#L33 Edited September 29, 2018 by BeardlessBrady Quote
Draco18s Posted September 29, 2018 Posted September 29, 2018 And where's that invoked from. Ultimately I need to know the IBakedModel modelMain object originates, as by the time it gets to BakedModelCurrencyFinalized, it's null. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
BeardlessBrady Posted September 29, 2018 Author Posted September 29, 2018 that is invoked here: https://github.com/BeardlessBrady/Currency-Mod/blob/master-2.0-1.12/src/main/java/beard/modcurrency/client/BakedHandler.java which is handled in the client proxy: https://github.com/BeardlessBrady/Currency-Mod/blob/master-2.0-1.12/src/main/java/beard/modcurrency/proxy/ClientProxy.java Quote
Draco18s Posted September 29, 2018 Posted September 29, 2018 IBakedModel main = event.getModelRegistry().getObject(mrl); You need to insure that this is not failing. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
BeardlessBrady Posted September 29, 2018 Author Posted September 29, 2018 You are correct, that stopped the crash, but now the texture is the broken pink and black texture box. I think I can figure it out from here though. Thanks! Quote
BeardlessBrady Posted September 29, 2018 Author Posted September 29, 2018 So it should be there but its coming out null, any idea why? Quote
Cadiboo Posted September 29, 2018 Posted September 29, 2018 Is it ever created? Use the debugger Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
BeardlessBrady Posted October 4, 2018 Author Posted October 4, 2018 I dont think it was created but I have no idea why. Quote
Cadiboo Posted October 5, 2018 Posted October 5, 2018 7 hours ago, BeardlessBrady said: I dont think it was created but I have no idea why. Where was it meant to be created? Place a breakpoint there and see if it hits. Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
BeardlessBrady Posted October 5, 2018 Author Posted October 5, 2018 So for some reason how I was registering my items worked but when getting the object from the bakeHandler it would come null. I changed the way I registered my items to how CAS_ual_TY does it and the bakeHandler finds it. odd but hey it works. Quote
Recommended Posts
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.