39 lines
1.4 KiB
Java
39 lines
1.4 KiB
Java
|
package net.minecraft.client.renderer.entity.state;
|
||
|
|
||
|
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;
|
||
|
import net.minecraftforge.api.distmarker.Dist;
|
||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||
|
|
||
|
@OnlyIn(Dist.CLIENT)
|
||
|
public class ItemClusterRenderState extends EntityRenderState {
|
||
|
public final ItemStackRenderState item = new ItemStackRenderState();
|
||
|
public int count;
|
||
|
public int seed;
|
||
|
|
||
|
public void extractItemGroupRenderState(Entity p_377676_, ItemStack p_378378_, ItemModelResolver p_377148_) {
|
||
|
p_377148_.updateForNonLiving(this.item, p_378378_, ItemDisplayContext.GROUND, p_377676_);
|
||
|
this.count = getRenderedAmount(p_378378_.getCount());
|
||
|
this.seed = getSeedForItemStack(p_378378_);
|
||
|
}
|
||
|
|
||
|
public static int getSeedForItemStack(ItemStack p_377994_) {
|
||
|
return p_377994_.isEmpty() ? 187 : Item.getId(p_377994_.getItem()) + p_377994_.getDamageValue();
|
||
|
}
|
||
|
|
||
|
public static int getRenderedAmount(int p_376134_) {
|
||
|
if (p_376134_ <= 1) {
|
||
|
return 1;
|
||
|
} else if (p_376134_ <= 16) {
|
||
|
return 2;
|
||
|
} else if (p_376134_ <= 32) {
|
||
|
return 3;
|
||
|
} else {
|
||
|
return p_376134_ <= 48 ? 4 : 5;
|
||
|
}
|
||
|
}
|
||
|
}
|