Implemented display of icons for MultiItem (#50)

* Implements rendering of MultiItem items.
This commit is contained in:
shartte 2016-08-16 18:58:28 +02:00 committed by Elix_x
parent 838691d924
commit 845d4da353
3 changed files with 33 additions and 22 deletions

View file

@ -21,13 +21,11 @@ package appeng.items.materials;
import java.util.EnumSet; import java.util.EnumSet;
import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.EntityRegistry; import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.core.AppEng; import appeng.core.AppEng;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
@ -118,9 +116,7 @@ public enum MaterialType
CardCrafting( 53 ); CardCrafting( 53 );
private final EnumSet<AEFeature> features; private final EnumSet<AEFeature> features;
// TextureAtlasSprite for the material. private final ModelResourceLocation model = new ModelResourceLocation( "appliedenergistics2:ItemMaterial." + name() );
@SideOnly( Side.CLIENT )
private TextureAtlasSprite IIcon;
private Item itemInstance; private Item itemInstance;
private int damageValue; private int damageValue;
// stack! // stack!
@ -221,16 +217,6 @@ public enum MaterialType
this.itemInstance = itemInstance; this.itemInstance = itemInstance;
} }
TextureAtlasSprite getIIcon()
{
return this.IIcon;
}
void setIIcon( final TextureAtlasSprite iIcon )
{
this.IIcon = iIcon;
}
MaterialStackSrc getStackSrc() MaterialStackSrc getStackSrc()
{ {
return this.stackSrc; return this.stackSrc;
@ -241,4 +227,8 @@ public enum MaterialType
this.stackSrc = stackSrc; this.stackSrc = stackSrc;
} }
public ModelResourceLocation getModel() {
return model;
}
} }

View file

@ -30,10 +30,12 @@ import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
@ -46,6 +48,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -61,7 +64,6 @@ import appeng.api.implementations.items.IUpgradeModule;
import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.implementations.tiles.ISegmentedInventory;
import appeng.api.parts.IPartHost; import appeng.api.parts.IPartHost;
import appeng.api.parts.SelectedPart; import appeng.api.parts.SelectedPart;
import appeng.client.ClientHelper;
import appeng.core.AEConfig; import appeng.core.AEConfig;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
import appeng.core.features.IStackSrc; import appeng.core.features.IStackSrc;
@ -143,11 +145,8 @@ public final class MultiItem extends AEBaseItem implements IStorageComponent, IU
public MaterialType getTypeByStack( final ItemStack is ) public MaterialType getTypeByStack( final ItemStack is )
{ {
if( this.dmgToMaterial.containsKey( is.getItemDamage() ) ) MaterialType type = this.dmgToMaterial.get( is.getItemDamage() );
{ return (type != null) ? type : MaterialType.InvalidType;
return this.dmgToMaterial.get( is.getItemDamage() );
}
return MaterialType.InvalidType;
} }
@Override @Override
@ -446,4 +445,23 @@ public final class MultiItem extends AEBaseItem implements IStorageComponent, IU
return o1.compareTo( o2 ); return o1.compareTo( o2 );
} }
} }
@Override
@SideOnly( Side.CLIENT )
public List<ResourceLocation> getItemVariants()
{
// Register a resource location for every material type
return Arrays.stream( MaterialType.values() )
.map( MaterialType::getModel )
.collect( Collectors.toList() );
}
@Override
@SideOnly( Side.CLIENT )
public ItemMeshDefinition getItemMeshDefinition()
{
return is -> getTypeByStack( is ).getModel();
}
} }

View file

@ -0,0 +1,3 @@
{
"parent":"builtin/missing"
}