Fixes Paintball Item Rendering (#48)

* Added a way to register a custom ItemMeshDefinition for items, including registration of custom variants.

* Moved color handling for paint balls into the paint ball class and implemented the correct model selection logic for displaying the items.
This commit is contained in:
shartte
2016-08-16 17:55:56 +02:00
committed by Elix_x
parent 115f73de2e
commit 838691d924
4 changed files with 101 additions and 43 deletions
+22 -5
View File
@@ -23,16 +23,17 @@ import java.util.EnumSet;
import java.util.List;
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.client.ClientHelper;
import appeng.core.features.AEFeature;
import appeng.core.features.FeatureNameExtractor;
import appeng.core.features.IAEFeature;
@@ -106,11 +107,27 @@ public abstract class AEBaseItem extends Item implements IAEFeature
super.addInformation( stack, player, lines, displayMoreInfo );
}
@SideOnly( Side.CLIENT )
public void registerCustomIcon( final TextureMap map ){}
protected void getCheckedSubItems( final Item sameItem, final CreativeTabs creativeTab, final List<ItemStack> itemStacks )
{
super.getSubItems( sameItem, creativeTab, itemStacks );
}
/**
* During registration of the item in the registry, this method is used to determine which models need to be registered for the item to be
* rendered. If your item subclass requires more than just the default, override this method and add them to the list, or replace it entirely.
*/
@SideOnly( Side.CLIENT )
public List<ResourceLocation> getItemVariants() {
return Lists.newArrayList( getRegistryName() );
}
/**
* If this item requires special logic to select the model for rendering, this method can be overriden to return that selection logic.
* Return null to use the standard logic.
*/
@SideOnly( Side.CLIENT )
public ItemMeshDefinition getItemMeshDefinition() {
return null;
}
}