minecraft-src/net/minecraft/client/renderer/entity/state/ItemClusterRenderState.java
2025-07-04 03:15:13 +03:00

39 lines
1.3 KiB
Java

package net.minecraft.client.renderer.entity.state;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.item.ItemModelResolver;
import net.minecraft.client.renderer.item.ItemStackRenderState;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
@Environment(EnvType.CLIENT)
public class ItemClusterRenderState extends EntityRenderState {
public final ItemStackRenderState item = new ItemStackRenderState();
public int count;
public int seed;
public void extractItemGroupRenderState(Entity entity, ItemStack stack, ItemModelResolver itemModelResolver) {
itemModelResolver.updateForNonLiving(this.item, stack, ItemDisplayContext.GROUND, entity);
this.count = getRenderedAmount(stack.getCount());
this.seed = getSeedForItemStack(stack);
}
public static int getSeedForItemStack(ItemStack stack) {
return stack.isEmpty() ? 187 : Item.getId(stack.getItem()) + stack.getDamageValue();
}
public static int getRenderedAmount(int count) {
if (count <= 1) {
return 1;
} else if (count <= 16) {
return 2;
} else if (count <= 32) {
return 3;
} else {
return count <= 48 ? 4 : 5;
}
}
}