43 lines
1 KiB
Java
43 lines
1 KiB
Java
package appeng.items.parts;
|
|
|
|
|
|
import java.util.Arrays;
|
|
import java.util.stream.Collectors;
|
|
|
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import appeng.bootstrap.IItemRendering;
|
|
import appeng.bootstrap.ItemRenderingCustomizer;
|
|
|
|
|
|
public class ItemMultipartRendering extends ItemRenderingCustomizer
|
|
{
|
|
|
|
private final ItemMultiPart item;
|
|
|
|
public ItemMultipartRendering( ItemMultiPart item )
|
|
{
|
|
this.item = item;
|
|
}
|
|
|
|
@Override
|
|
public void customize( IItemRendering rendering )
|
|
{
|
|
|
|
rendering.meshDefinition( this::getItemMeshDefinition );
|
|
|
|
// Register all item models as variants so they get loaded
|
|
rendering.variants( Arrays.stream( PartType.values() )
|
|
.flatMap( part -> part.getItemModels().stream() )
|
|
.collect( Collectors.toList() ) );
|
|
}
|
|
|
|
private ModelResourceLocation getItemMeshDefinition( ItemStack is )
|
|
{
|
|
PartType partType = item.getTypeByStack( is );
|
|
int variant = item.variantOf( is.getItemDamage() );
|
|
return partType.getItemModels().get( variant );
|
|
}
|
|
}
|