Begin new model system

Includes some examples for both ways.
This commit is contained in:
Nick 2016-03-15 22:48:01 -07:00
parent 5c2ba20a32
commit ba0b24d231
28 changed files with 332 additions and 104 deletions

View file

@ -0,0 +1,19 @@
package WayofTime.bloodmagic.client;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.List;
/**
* Provides a custom {@link ItemMeshDefinition} for automatic registration of
* renders.
*/
public interface IMeshProvider {
@SideOnly(Side.CLIENT)
ItemMeshDefinition getMeshDefinition();
List<String> getVariants();
}

View file

@ -0,0 +1,10 @@
package WayofTime.bloodmagic.client;
import org.apache.commons.lang3.tuple.Pair;
import java.util.List;
public interface IVariantProvider {
List<Pair<Integer, String>> getVariants();
}

View file

@ -5,6 +5,7 @@ import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.ItemStack;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.IActivatable;
import net.minecraft.util.ResourceLocation;
public class CustomMeshDefinitionActivatable implements ItemMeshDefinition
{
@ -18,12 +19,9 @@ public class CustomMeshDefinitionActivatable implements ItemMeshDefinition
public ModelResourceLocation getModelLocation(ItemStack stack)
{
if (stack != null && stack.getItem() instanceof IActivatable)
{
if (!((IActivatable) stack.getItem()).getActivated(stack))
return new ModelResourceLocation(Constants.Mod.DOMAIN + name + "0", "inventory");
if (((IActivatable) stack.getItem()).getActivated(stack))
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "active=true");
return new ModelResourceLocation(Constants.Mod.DOMAIN + name + "1", "inventory");
}
return null;
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "active=false");
}
}