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

Changing item's texture


Recommended Posts


I need to change the texture of some items when its itemstack has a special tag. These are the trident, the shield and the other items rendered with the vanilla ItemStackTileEntityRenderer. I tried to look for the field name of the ItemStackTileEntityRenderer ister in Item.class in order to put my CustomItemStackTileEntityRenderer through reflection but I failed. So how can I achieve this ?

Have a good day.

Edited by Speeds_Arrow
Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • **This issue was also reported to the OptiFine Github Issues page, by myself: https://github.com/sp614x/optifine/issues/6432 Description of Issue Forge instance is crashing when loading up with OptiFine in the mod folder. From the debug-log I could understand that it tried loading up OptiFine first, but then it ends in an "Unexpected issue occured. Exit Code: 0.".   Steps to Reproduce 1. Download mods in Mod list 2. paste OptiFine and other Mods into the Mods-Folder 3. paste launching Args to the Launching-Argument-Line of the Forge-Profile 4. launch Minecraft 5. game Crashing before showing up.   Minecraft Launching Arguments (+750MB more RAM = -Xmx2750M ) Launching Args: -Xmx2750M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M   OptiFine Version OptiFine HD U H3 pre6 (most recent) and the release1.18 versions beforehand   Forge Version 1.18 - 38.0.14 (most recent) and the release1.18 versions beforehand   Other Installed Mods Catalogue: https://www.curseforge.com/minecraft/mc-mods/catalogue/files/3543625 Configured: https://www.curseforge.com/minecraft/mc-mods/configured/files/3546349 Jade: https://www.curseforge.com/minecraft/mc-mods/jade/files/3544015 Jade-API: https://www.curseforge.com/minecraft/mc-mods/jade/files/3544058   Log Files/Crash Reports debug-log (versions noted in this bug-report): https://pastebin.com/9J2PWB61 debug-log (versions noted in the pastebin): https://pastebin.com/SKxdcDvJ   F3 Debug Screenshot I am not entering the main menu at all, in this case I sadly can not include that F3-Debug-Screen-Screenshot   Prior Testing Does this happen without other mods installed? Yes, it does happen, when OptiFine is being launched without any other mods installed. Does this happen without any mods at all? There is no crash occurring, if Forge is launched without any mods installed. Does this happen in OptiFine standalone? No. The standalone version is launching up just fine, as expected. Does this happen in Vanilla without OptiFine? No. The Vanilla 1.18 us launching without any issues. Does this happen in Forge standalone? No. Forge standalone in launching just fine, as expected. Have you tried using a binary search to find which mods cause this issue? I removed mods one-by-one and in groups (with and without OptiFine): https://pastebin.com/T6Fvysjg   Additional Information No crash reports available because of Exit Code: 0   My Conclusion Forge and OptiFine seem to be incompatible.
    • I have another issue. Let me explain my use of the entity. The server is spawning that entity, that just goes upwards. When it reaches the position of the block above,  it deletes itself. At that time, the entity will place a block there.  This entity is spawned only on the client, using a packet. Multiple may be spawned at a time.  I haven't made the entity place the blocks yet, because I ran into an issue.  My game bugs out randomly, when spawning these entities. My modded overlay disappears, my placer stops moving and oscillates back and forth, and I can't do anything.  public class MudWallBlockEntity extends Entity { private BlockPos startingBlockPos; private BlockState blockState; private int ticks; public MudWallBlockEntity(EntityType<? extends MudWallBlockEntity> entityType, World level){ super(entityType, level); } public MudWallBlockEntity(EntityType<? extends MudWallBlockEntity> entityType, World level, BlockPos position, BlockState block){ super(entityType, level); this.startingBlockPos = position; this.blockState = block; this.setPos(position.getX(), position.getY(), position.getZ()); this.ticks = 0; } @Override protected void defineSynchedData() { } @Override protected void readAdditionalSaveData(@Nonnull CompoundNBT pCompound) { } @Override protected void addAdditionalSaveData(@Nonnull CompoundNBT pCompound) { } @Override public IPacket<?> getAddEntityPacket() { LogManager.getLogger().error("THE GAME CRASHED BECAUSE THE /SUMMON COMMAND WAS USED TO SUMMON MudWallBlockEntity!"); return null; } @Override public void tick() { if(ticks++ == 0){ // the entity was placed into the world. } LogManager.getLogger().info("ticks: " + ticks); if(blockPosition().getY() >= startingBlockPos.getY()){ remove(); return; } setDeltaMovement(0, 0.05, 0); move(MoverType.SELF, getDeltaMovement()); } public BlockState getBlockState() { return blockState; } public BlockPos getStartingBlockPos(){ return startingBlockPos; } @Override public boolean canBeCollidedWith() { return false; } @Override protected boolean canAddPassenger(Entity pPassenger) { return false; } @Override public boolean canChangeDimensions() { return false; } } public class MudWallBlockEntityRenderer extends EntityRenderer<MudWallBlockEntity> { public MudWallBlockEntityRenderer(EntityRendererManager entityRendererManager) { super(entityRendererManager); this.shadowRadius = 0.5F; } @Override public void render(MudWallBlockEntity entity, float entityYaw, float partialTicks, MatrixStack matrixStack, IRenderTypeBuffer buffer, int packedLight) { BlockState blockstate = entity.getBlockState(); if (blockstate.getRenderShape() == BlockRenderType.MODEL) { World world = entity.getCommandSenderWorld(); if (blockstate != world.getBlockState(entity.blockPosition()) && blockstate.getRenderShape() != BlockRenderType.INVISIBLE) { matrixStack.pushPose(); BlockPos blockpos = new BlockPos(entity.getX(), entity.getBoundingBox().maxY, entity.getZ()); matrixStack.translate(-0.5D, 0.0D, -0.5D); BlockRendererDispatcher blockrendererdispatcher = Minecraft.getInstance().getBlockRenderer(); for (net.minecraft.client.renderer.RenderType type : net.minecraft.client.renderer.RenderType.chunkBufferLayers()) { if (RenderTypeLookup.canRenderInLayer(blockstate, type)) { net.minecraftforge.client.ForgeHooksClient.setRenderLayer(type); blockrendererdispatcher.getModelRenderer().tesselateBlock(world, blockrendererdispatcher.getBlockModel(blockstate), blockstate, blockpos, matrixStack,buffer.getBuffer(type), false, new Random(), blockstate.getSeed(entity.getStartingBlockPos()), OverlayTexture.NO_OVERLAY); } } net.minecraftforge.client.ForgeHooksClient.setRenderLayer(null); matrixStack.popPose(); super.render(entity, entityYaw, partialTicks, matrixStack, buffer, packedLight); } } } @Override public ResourceLocation getTextureLocation(MudWallBlockEntity pEntity) { return AtlasTexture.LOCATION_BLOCKS; } } Spawning code: public static void handlePacket(ServerSpawnMudWallEntityPacket message, Supplier<NetworkEvent.Context> ctx) { PlayerEntity player = (PlayerEntity) Minecraft.getInstance().cameraEntity; ClientWorld level = (ClientWorld) (player.getCommandSenderWorld()); for(Tuple<BlockPos, UUID> spawnData : message.getSpawnList()){ BlockPos blockPos = spawnData.getFirst(); UUID uuid = spawnData.getSecond(); MudWallBlockEntity entity = new MudWallBlockEntity( ModEntities.MUD_WALL_BLOCK_ENTITY.get(), level, blockPos, ModBlocks.TEMPORARY_DIRT_BLOCK.get().defaultBlockState()); entity.setPacketCoordinates(blockPos.getX(), blockPos.getY(), blockPos.getZ()); entity.moveTo(blockPos, 0f, 0f); entity.setUUID(uuid); level.putNonPlayerEntity(entities++, entity); } } The UUID is just UUID.getRandom. "entities" is an integer. The value printed in the entity tick is one tick (so the method ran once before doing entity.remove()) Here is what happens: https://streamable.com/mc98kl  
    • delete this client config file
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

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