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

Aligatetcolt

Members
  • Posts

    22
  • Joined

  • Last visited

Aligatetcolt's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. I got it working. I had to still use the Minecraft.getInstance().getEntityModels() And use that in plushRenderer. public class ItemStackRenderer extends BlockEntityWithoutLevelRenderer{ private EntityModelSet entityModelSet; private Map<Plush.Type, PlushModelBase> plushModelBaseMap; public ItemStackRenderer(BlockEntityRenderDispatcher RenderDispatcher, EntityModelSet ModelSet) { super(RenderDispatcher, ModelSet); } @Override public void onResourceManagerReload(ResourceManager resourceManager) { } @Override public void renderByItem(ItemStack stack, ItemTransforms.TransformType transformType, PoseStack matrixStackIn, MultiBufferSource bufferIn, int combinedLightIn, int combinedOverlayIn) { Item item = stack.getItem(); if (item instanceof BlockItem) { Block block = ((BlockItem) item).getBlock(); if (block instanceof PlushBlock) { GameProfile gameprofile = null; if (stack.hasTag()) { CompoundTag compoundtag = stack.getTag(); if (compoundtag.contains("SkullOwner", 10)) { gameprofile = NbtUtils.readGameProfile(compoundtag.getCompound("SkullOwner")); } else if (compoundtag.contains("SkullOwner", 8) && !StringUtils.isBlank(compoundtag.getString("SkullOwner"))) { gameprofile = new GameProfile(null, compoundtag.getString("SkullOwner")); compoundtag.remove("SkullOwner"); SkullBlockEntity.updateGameprofile(gameprofile, (p_172560_) -> { compoundtag.put("SkullOwner", NbtUtils.writeGameProfile(new CompoundTag(), p_172560_)); }); } } Plush.Type PlushType = ((PlushBlock) block).getType(); this.entityModelSet = Minecraft.getInstance().getEntityModels(); plushModelBaseMap = PlushBlockRenderer.createPlushRenderers(this.entityModelSet);; PlushModelBase modelBase = plushModelBaseMap.get(PlushType); RenderType rendertype = PlushBlockRenderer.getRenderType(PlushType, gameprofile); Furniature.LOGGER.info(gameprofile +" :Gameprofile"); Furniature.LOGGER.info(PlushType+" :Plush Type"); Furniature.LOGGER.info(modelBase+" :Model Base"); PlushBlockRenderer.renderPlush((Direction) null, 180.0F, 0.0F, matrixStackIn, bufferIn, combinedLightIn, modelBase, rendertype); } } } }
  2. It seems like the gameprofile stays null. But still not 100% sure on why there is no item model.
  3. had that still the same thing happened. i removed to test if that was really necessary.
  4. Yeah it seems like i did make a mistake and now it does go to the code. there is still one other problem and that is that the items are invisible. i guess something is wrong with my item render class.
  5. I will make the item models json when i can and report back if it made a difrence
  6. There was and that made no difference. The reason i took them away was because i looked at some references and no one had a model.json
  7. Here is the link to github. https://github.com/DavyVerbogt/Furniature/tree/main/src/main/java/com/colt/furniature
  8. Well i put this (Furniature.LOGGER.info("But does it get here?");) in the BlockEntityWithoutLevelRenderer. But i cant find it in the log. so what i thought was that it never reached that point as you can see in the code i send earlier.
  9. Alright. i was just confused then. but weirdly enough it still does not get past the consumer.accept. at least the logger i put in never is triggered. so its not in the logs. Also sorry i have been on this problem for a few while now and i just completely blank out sometimes.
  10. Alright but it keeps saying Method call expected with Insert New. Even if i do this. @Override public void initializeClient(Consumer<IItemRenderProperties> consumer) { ItemStackRenderer plushItemRender = new ItemStackRenderer(); consumer.accept(new IItemRenderProperties() { @Override public BlockEntityWithoutLevelRenderer getItemStackRenderer() { Furniature.LOGGER.info("But does it get here?"); return plushItemRender; } }); }
  11. I am trying to make custom block that looks like a type of plush of a player and make it work just like the skulls. The block already works but for some reason i cant seem to get past the consumer.accept in the initializeClient The Item class public class PlushItem extends BlockItem { public PlushItem(Block block) { super(block, new Item.Properties().tab(FurniatureItemGroup.FURNIATURE)); } @Override public void initializeClient(Consumer<IItemRenderProperties> consumer) { consumer.accept(new IItemRenderProperties() { @Override public BlockEntityWithoutLevelRenderer getItemStackRenderer() { return new ItemStackRenderer(); } }); } } The item stack renderer public class ItemStackRenderer extends BlockEntityWithoutLevelRenderer { private static HashMap<Plush.Type, PlushModelBase> plushModels; public ItemStackRenderer() { super(Minecraft.getInstance().getBlockEntityRenderDispatcher(), Minecraft.getInstance().getEntityModels()); } private static void init() { plushModels = new HashMap<>(); for (Plush.Type type : Plush.Types.values()) { PlushModelBase plushModelBase = new PlushModelBase(); plushModels.put(type, plushModelBase); } } @Override public void renderByItem(ItemStack stack, ItemTransforms.TransformType transformType, PoseStack matrixStackIn, MultiBufferSource bufferIn, int combinedLightIn, int combinedOverlayIn) { if (plushModels == null) init(); Furniature.LOGGER.info(plushModels + " :Render By Item"); Item[] items = {FurniatureItems.HEATH_PLUSH.get(), FurniatureItems.PLAYER_PLUSH.get()}; for (Item item : items) { if (item instanceof BlockItem) { Block block = ((BlockItem) item).getBlock(); if (block instanceof PlushBlock) { GameProfile gameprofile = null; if (stack.hasTag()) { CompoundTag compoundtag = stack.getTag(); if (compoundtag.contains("SkullOwner", 10)) { gameprofile = NbtUtils.readGameProfile(compoundtag.getCompound("SkullOwner")); } else if (compoundtag.contains("SkullOwner", 8) && !StringUtils.isBlank(compoundtag.getString("SkullOwner"))) { gameprofile = new GameProfile(null, compoundtag.getString("SkullOwner")); compoundtag.remove("SkullOwner"); SkullBlockEntity.updateGameprofile(gameprofile, (p_172560_) -> { compoundtag.put("SkullOwner", NbtUtils.writeGameProfile(new CompoundTag(), p_172560_)); }); } } Plush.Type PlushType = ((PlushBlock) block).getType(); PlushModelBase modelBase = plushModels.get(PlushType); RenderType rendertype = PlushBlockRenderer.getRenderType(PlushType, gameprofile); PlushBlockRenderer.renderPlush((Direction) null, 180.0F, 0.0F, matrixStackIn, bufferIn, combinedLightIn, modelBase, rendertype); } } } } } I am fully aware that is probably still wont work but i am just not sure on how to go further.
  12. I got it working. still thanks for your help. it was still realy helpfull
×
×
  • Create New...

Important Information

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