Successfully added basic item class
This commit is contained in:
parent
f88a332dce
commit
22a32fb1d3
@ -1,16 +1,15 @@
|
|||||||
package fr.jackcartersmith.orbsat;
|
package fr.jackcartersmith.orbsat;
|
||||||
|
|
||||||
import fr.jackcartersmith.orbsat.item.DesignatorCircuitItem;
|
import fr.jackcartersmith.orbsat.item.ItemOSBase;
|
||||||
import fr.jackcartersmith.orbsat.item.LaserDesignatorItem;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
|
|
||||||
public class OSItems {
|
public class OSItems {
|
||||||
|
public static ItemOSBase componentsItem;
|
||||||
public static Item laserDesignator;
|
public static ItemOSBase satelliteItem;
|
||||||
public static Item designatorCircuit;
|
|
||||||
|
|
||||||
public static void init(){
|
public static void init(){
|
||||||
laserDesignator = new LaserDesignatorItem("laserDesignator");
|
componentsItem = new ItemOSBase("components",1,
|
||||||
designatorCircuit = new DesignatorCircuitItem("designatorCircuit");
|
"laserDesignator","designatorCircuit");
|
||||||
|
satelliteItem = new ItemOSBase("satellites",1,
|
||||||
|
"classic_mki","classic_mkii","classic_mkiii");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
|
|||||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||||
import net.minecraftforge.fml.common.registry.IForgeRegistryEntry;
|
import net.minecraftforge.fml.common.registry.IForgeRegistryEntry;
|
||||||
|
|
||||||
@Mod(modid=OSRefs.MODID, name=OSRefs.NAME, version=OSRefs.VERSION, dependencies = "required-after:Forge@[12.18.3.2185,)", useMetadata = true)
|
@Mod(modid=OSRefs.MODID, name=OSRefs.NAME, version=OSRefs.VERSION, dependencies = "required-after:Forge@[12.18.3.2185,)")
|
||||||
public class OrbitalSatellite {
|
public class OrbitalSatellite {
|
||||||
|
|
||||||
@Mod.Instance(OSRefs.MODID)
|
@Mod.Instance(OSRefs.MODID)
|
||||||
@ -112,7 +112,7 @@ public class OrbitalSatellite {
|
|||||||
@Override
|
@Override
|
||||||
public ItemStack getIconItemStack()
|
public ItemStack getIconItemStack()
|
||||||
{
|
{
|
||||||
return new ItemStack(OSItems.designatorCircuit,1,0);
|
return new ItemStack(OSItems.satelliteItem,1,0);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package fr.jackcartersmith.orbsat.client;
|
|||||||
import fr.jackcartersmith.orbsat.OSRefs;
|
import fr.jackcartersmith.orbsat.OSRefs;
|
||||||
import fr.jackcartersmith.orbsat.common.CommonProxy;
|
import fr.jackcartersmith.orbsat.common.CommonProxy;
|
||||||
import fr.jackcartersmith.orbsat.common.util.OSLogger;
|
import fr.jackcartersmith.orbsat.common.util.OSLogger;
|
||||||
|
import fr.jackcartersmith.orbsat.item.ItemOSBase;
|
||||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
@ -25,12 +26,29 @@ public class ClientProxy extends CommonProxy{
|
|||||||
for(Item item : OSRefs.registeredOSItems)
|
for(Item item : OSRefs.registeredOSItems)
|
||||||
{
|
{
|
||||||
if(item instanceof Item)
|
if(item instanceof Item)
|
||||||
{
|
{
|
||||||
OSLogger.debug("[OrbSAT] Register render for "+item.getUnlocalizedName().substring(5));
|
ItemOSBase ieMetaItem = (ItemOSBase) item;
|
||||||
final ResourceLocation loc = new ResourceLocation(OSRefs.MODID, item.getUnlocalizedName().substring(5));
|
if(ieMetaItem.registerSubModels && ieMetaItem.getSubNames() != null && ieMetaItem.getSubNames().length > 0)
|
||||||
|
{
|
||||||
ModelBakery.registerItemVariants(item, loc);
|
for(int meta = 0; meta < ieMetaItem.getSubNames().length; meta++)
|
||||||
ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(loc, "inventory"));
|
{
|
||||||
|
ResourceLocation loc = new ResourceLocation("orbsat", ieMetaItem.itemName + "/" + ieMetaItem.getSubNames()[meta]);
|
||||||
|
ModelBakery.registerItemVariants(ieMetaItem, loc);
|
||||||
|
ModelLoader.setCustomModelResourceLocation(ieMetaItem, meta, new ModelResourceLocation(loc, "inventory"));
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
final ResourceLocation loc = new ResourceLocation("orbsat", ieMetaItem.itemName);
|
||||||
|
ModelBakery.registerItemVariants(ieMetaItem, loc);
|
||||||
|
ModelLoader.setCustomMeshDefinition(ieMetaItem, new ItemMeshDefinition()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public ModelResourceLocation getModelLocation(ItemStack stack)
|
||||||
|
{
|
||||||
|
return new ModelResourceLocation(loc, "inventory");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
93
src/main/java/fr/jackcartersmith/orbsat/item/ItemOSBase.java
Normal file
93
src/main/java/fr/jackcartersmith/orbsat/item/ItemOSBase.java
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
package fr.jackcartersmith.orbsat.item;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import fr.jackcartersmith.orbsat.OSRefs;
|
||||||
|
import fr.jackcartersmith.orbsat.OrbitalSatellite;
|
||||||
|
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.ActionResult;
|
||||||
|
import net.minecraft.util.EnumActionResult;
|
||||||
|
import net.minecraft.util.EnumHand;
|
||||||
|
import net.minecraft.util.text.TextComponentString;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
public class ItemOSBase extends Item{
|
||||||
|
public String itemName;
|
||||||
|
protected String[] subNames;
|
||||||
|
boolean[] isMetaHidden;
|
||||||
|
public boolean registerSubModels=true;
|
||||||
|
|
||||||
|
public ItemOSBase(String name, int stackSize, String... subNames){
|
||||||
|
this.setUnlocalizedName(OSRefs.MODID+"."+name);
|
||||||
|
this.setHasSubtypes(subNames!=null&&subNames.length>0);
|
||||||
|
this.setCreativeTab(OrbitalSatellite.creativeTab);
|
||||||
|
this.setMaxStackSize(stackSize);
|
||||||
|
this.itemName = name;
|
||||||
|
this.subNames = subNames!=null&&subNames.length>0?subNames:null;
|
||||||
|
this.isMetaHidden = new boolean[this.subNames!=null?this.subNames.length:1];
|
||||||
|
|
||||||
|
OrbitalSatellite.register(this, name);
|
||||||
|
OSRefs.registeredOSItems.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getSubNames()
|
||||||
|
{
|
||||||
|
return subNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void getSubItems(Item item, CreativeTabs tab, List list)
|
||||||
|
{
|
||||||
|
if(getSubNames()!=null)
|
||||||
|
{
|
||||||
|
for(int i=0;i<getSubNames().length;i++)
|
||||||
|
if(!isMetaHidden(i))
|
||||||
|
list.add(new ItemStack(this,1,i));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
list.add(new ItemStack(this));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUnlocalizedName(ItemStack stack)
|
||||||
|
{
|
||||||
|
if(getSubNames()!=null)
|
||||||
|
{
|
||||||
|
String subName = stack.getItemDamage()<getSubNames().length?getSubNames()[stack.getItemDamage()]:"";
|
||||||
|
return this.getUnlocalizedName()+"."+subName;
|
||||||
|
}
|
||||||
|
return this.getUnlocalizedName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemOSBase setMetaHidden(int... meta)
|
||||||
|
{
|
||||||
|
for(int i : meta)
|
||||||
|
if(i>=0 && i<this.isMetaHidden.length)
|
||||||
|
this.isMetaHidden[i] = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public ItemOSBase setMetaUnhidden(int... meta)
|
||||||
|
{
|
||||||
|
for(int i : meta)
|
||||||
|
if(i>=0 && i<this.isMetaHidden.length)
|
||||||
|
this.isMetaHidden[i] = false;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public boolean isMetaHidden(int meta)
|
||||||
|
{
|
||||||
|
return this.isMetaHidden[Math.max(0, Math.min(meta, this.isMetaHidden.length-1))];
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemOSBase setRegisterSubModels(boolean register)
|
||||||
|
{
|
||||||
|
this.registerSubModels = register;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
@ -1,16 +0,0 @@
|
|||||||
package fr.jackcartersmith.orbsat.item;
|
|
||||||
|
|
||||||
import fr.jackcartersmith.orbsat.OSRefs;
|
|
||||||
import fr.jackcartersmith.orbsat.OrbitalSatellite;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
|
|
||||||
public class SatelliteItem extends Item{
|
|
||||||
public SatelliteItem(String unlocalizedName){
|
|
||||||
this.setUnlocalizedName(unlocalizedName);
|
|
||||||
this.setCreativeTab(OrbitalSatellite.creativeTab);
|
|
||||||
this.setHasSubtypes(true);
|
|
||||||
this.setMaxStackSize(1);
|
|
||||||
OrbitalSatellite.register(this, unlocalizedName);
|
|
||||||
OSRefs.registeredOSItems.add(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +1,8 @@
|
|||||||
#CreativeTabs
|
#CreativeTabs
|
||||||
itemGroup.orbsat=Orbital Satellite
|
itemGroup.orbsat=Orbital Satellite
|
||||||
#Items
|
#Items
|
||||||
item.laserDesignator.name=Targeting Satellite Computer
|
item.orbsat.components.laserDesignator.name=Targeting Satellite Computer
|
||||||
item.designatorCircuit.name=Targeting Computer Circuit
|
item.orbsat.components.designatorCircuit.name=Targeting Computer Circuit
|
||||||
|
item.orbsat.satellites.classic_mki.name=Classic Laser Satellite MK-I
|
||||||
|
item.orbsat.satellites.classic_mkii.name=Classic Laser Satellite MK-II
|
||||||
|
item.orbsat.satellites.classic_mkiii.name=Classic Laser Satellite MK-III
|
@ -1,5 +1,8 @@
|
|||||||
#CreativeTabs
|
#CreativeTabs
|
||||||
itemGroup.orbsat=Satellite Orbital
|
itemGroup.orbsat=Satellite Orbital
|
||||||
#Items
|
#Items
|
||||||
item.laserDesignator.name=Ordinateur de visée du satellite
|
item.orbsat.components.laserDesignator.name=Ordinateur de visée du satellite
|
||||||
item.designatorCircuit.name=Circuit pour ordinateur de visée
|
item.orbsat.components.designatorCircuit.name=Circuit pour ordinateur de visée
|
||||||
|
item.orbsat.satellites.classic_mki.name=Satellite classique de frappe laser MK-I
|
||||||
|
item.orbsat.satellites.classic_mkii.name=Satellite classique de frappe laser MK-II
|
||||||
|
item.orbsat.satellites.classic_mkiii.name=Satellite classique de frappe laser MK-III
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"parent": "item/generated",
|
"parent": "orbsat:item/flat",
|
||||||
"textures": {
|
"textures": {
|
||||||
"layer0": "orbsat:items/laserDesignator"
|
"layer0": "orbsat:items/laserDesignator"
|
||||||
}
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "orbsat:items/classicSatellite_mki"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "orbsat:item/flat",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "orbsat:items/classicSatellite_mkii"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "orbsat:item/flat",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "orbsat:items/classicSatellite_mkiii"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 238 B |
Binary file not shown.
After Width: | Height: | Size: 263 B |
Binary file not shown.
After Width: | Height: | Size: 285 B |
Loading…
x
Reference in New Issue
Block a user