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


  • Posts

  • Joined

  • Last visited

Everything posted by mooviies

  1. Hi! I had the same problem. I found out that the modid I put in build.gradle wasn't updating the one in the actual run config. So look your run config and make sure the argument is indeed your modid.
  2. From what I've gathered I need to make an IUnbakedModel which represents the model. However I don't seem to find how to register it in 1.14. I've hooked onto the ModelRegistryEvent which seems to be the right one. I use it to register a ICustomModelLoader. @SubscribeEvent public static void onModelsRegistry(ModelRegistryEvent event) { ModelLoaderRegistry.registerLoader(new MBlockItemModelLoader()); } and I've created a dummy IUnbakedModel that just returns my current IBakedModel. I just want to get the same result that I have for now but using an IUnbakedModel. For now I my ICustomModelLoader only returns my model. I've added in the accepts method that it accepts the resource location for my block. I've put breakpoints into both methods and none of the them are ever called so it must not have been registered correctly. public class MBlockItemModelLoader implements ICustomModelLoader { @Override public void onResourceManagerReload(IResourceManager resourceManager) { } @Override public boolean accepts(ResourceLocation modelLocation) { return modelLocation == SCResourcesLocations.BLOCK_ITEM; // Breakpoint here } @Override public IUnbakedModel loadModel(ResourceLocation modelLocation) throws Exception { return new MBlockItemModel(); // Breakpoint here } } How do I register it in 1.14? Or is there actually a whole other system I'm missing? I'm still trying to reverse engineer all of that but there's not really any vanilla block that does that. They seem to all use blockstates and json models. If you are aware of any mod that does that kind of stuff and has its source code available, I'd love to get a link to look into it
  3. From what I think I understand. handlePerspective is only called when a model is rendered as an item and not when a block is rendered. So maybe, with a block there's no way to transform a model unless you use a TileEntityRenderer? I was really hoping to find a way around using a TER for that if possible at all. There must be a way since Minecraft is able to create IBakedModels with rotations when reading blockstate config files. I guess I'll start digging into the IBakedModels generation from the blockstates. EDIT Looks like I need to look into IUnbakedModel and create the model from there, a bit like forge does with its bucket.
  4. The background isn't really the problem. Just didn't set a block with the right configs for my test. What I really need to know is how to apply a transform to an IBakedModel if it's possible at all. It looks like I need to use the handleperspective method but my override is never called for some reason. I'd want the item to be flat on the ground. So I'd need to apply a 90degree rotation. EDIT: I added an example of what I want. Right now I can do that using a custom model. However, I want to do the same thing using the item's model (So I don't have to create a model for all the items). I also don't want to use a TER since it's not good if I have a lot of those in the world.
  5. @Animefan8888 thanks for the suggestion to look at ItemRenderer. This looks like to be what I'm searching for. Already, the way to get the item's model looks less hacky. However it still does the same thing. I tried to do the same thing as in the renderItem method but it still does the same thing as my previous code. I'm still investigating the class, if anyone as any input let me know Here's my modified code public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand, @Nonnull IModelData extraData) { IBakedModel ibakedmodel = Minecraft.getInstance().getItemRenderer().getModelWithOverrides(new ItemStack(Items.FLINT)); return ForgeHooksClient.handleCameraTransforms(ibakedmodel, ItemCameraTransforms.TransformType.GROUND, false).getQuads(state, side, rand); } and also, something I didn't include in my first post. The result of the rendering.
  6. That was some test code to look at what was in the registry. I forgot to remove it from my example. It does nothing. I removed it with an edit just after my post. You probably saw it before the edit. It's just a constant to a resource location public static final ResourceLocation BLOCK_ITEM = new ResourceLocation(MyMod.MOD_ID, "sc_block_item"); I just want to get the ModelManager which is the same for blocks and items as per the forge wiki.
  7. I'm trying to take the existing models of the items in minecraft and display them on the ground. It's pretty easy using a custom model but it would take a lot of time to do it for every items. There's not a lot of documentation on 1.14 as of now and the best I could find seems to be from 1.12? Event the description in 1.13 doc doesn't seem to be up to date. I also want to use baked model and not a TER which isn't the best for the performance. Especially since the models wouldn't change after the initialisation of the game. I did a lot of digging in forge's code to try understanding what's exactly happening. I managed to use the ModelBakeEvent to add a custom IBakedModel. I override the getQuads method and return a model that I got from the ModelManager. For now I'm just trying to do it with flint. Since the only model present in the registry is the inventory variant of flint, I get the inventory model. Which is not made to be displayed in the world. The result is a vertical flint with a black baground in the world. I'm really lost as to what to do next. I probably need to apply some transforms to show it properly, but I don't know where or how to apply them and can't seem to find out. I've came across PerspectiveMapWrapper but I don't know what to pass to give it the OnGround perspective. There's a lot of deprecated methods and I'm not sure what I should use. Here's some relevant parts of my code. My IBakedModel public class MBlockItemBakedModel implements IBakedModel { @Override public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand) { return Minecraft.getInstance().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(new ModelResourceLocation("minecraft:flint", "inventory")).getQuads(state, side, rand); } @Override public boolean isAmbientOcclusion() { return true; } @Override public boolean isGui3d() { return false; } @Override public boolean isBuiltInRenderer() { return false; } @Override public TextureAtlasSprite getParticleTexture() { return Minecraft.getInstance().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(new ModelResourceLocation("minecraft:flint", "inventory")).getParticleTexture(); } @Override public ItemOverrideList getOverrides() { return Minecraft.getInstance().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(new ModelResourceLocation("minecraft:flint", "inventory")).getOverrides(); } } The onBakeEvent @SubscribeEvent public static void onBakeEvent(ModelBakeEvent event) { Map<ResourceLocation, IBakedModel> modelRegistry = event.getModelRegistry(); modelRegistry.put(new ModelResourceLocation(SCResourcesLocations.BLOCK_ITEM, ""), new MBlockItemBakedModel()); } Thanks for any input!
  8. Yeah that's what I'll do. Looks more stable. Thanks
  9. I used BlockLog which is the class used by Minecraft. I didn't change a thing to test it and make sure it works fine. However, I tested the same thing in 1.14.4 and it works fine. So I'm pretty sure it's a bug in the 1.13.2 version of forge.
  10. Did you find a solution for that problem? I have the same problem even if the number and order of states are matching. I also tried doing it with the exact same block that minecraft use to register it. Registration registry.registerAll( new BlockLog(MaterialColor.WOOD, Block.Properties.create(Material.WOOD, MaterialColor.OBSIDIAN).hardnessAndResistance(2.0F).sound(SoundType.WOOD)).setRegistryName("minecraft:oak_log") ); Error The Old and New are the exact same thing...
  • Create New...

Important Information

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