Implemented item models for cables.

This commit is contained in:
Sebastian Hartte
2016-08-26 19:07:15 +02:00
parent a5398240a0
commit 71a88aa668
79 changed files with 695 additions and 83 deletions
@@ -1,6 +1,9 @@
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;
@@ -21,13 +24,19 @@ public class ItemMultipartRendering extends ItemRenderingCustomizer
@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 )
{
// TODO: Avoid object creation here. This happens every frame
return new ModelResourceLocation( item.getTypeByStack( is ).getModel(), null );
PartType partType = item.getTypeByStack( is );
int variant = item.variantOf( is.getItemDamage() );
return partType.getItemModels().get( variant );
}
}