Successfully added basic item class
This commit is contained in:
parent
f88a332dce
commit
22a32fb1d3
@ -1,16 +1,15 @@
|
||||
package fr.jackcartersmith.orbsat;
|
||||
|
||||
import fr.jackcartersmith.orbsat.item.DesignatorCircuitItem;
|
||||
import fr.jackcartersmith.orbsat.item.LaserDesignatorItem;
|
||||
import net.minecraft.item.Item;
|
||||
import fr.jackcartersmith.orbsat.item.ItemOSBase;
|
||||
|
||||
public class OSItems {
|
||||
|
||||
public static Item laserDesignator;
|
||||
public static Item designatorCircuit;
|
||||
public static ItemOSBase componentsItem;
|
||||
public static ItemOSBase satelliteItem;
|
||||
|
||||
public static void init(){
|
||||
laserDesignator = new LaserDesignatorItem("laserDesignator");
|
||||
designatorCircuit = new DesignatorCircuitItem("designatorCircuit");
|
||||
componentsItem = new ItemOSBase("components",1,
|
||||
"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.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 {
|
||||
|
||||
@Mod.Instance(OSRefs.MODID)
|
||||
@ -112,7 +112,7 @@ public class OrbitalSatellite {
|
||||
@Override
|
||||
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.common.CommonProxy;
|
||||
import fr.jackcartersmith.orbsat.common.util.OSLogger;
|
||||
import fr.jackcartersmith.orbsat.item.ItemOSBase;
|
||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
@ -25,12 +26,29 @@ public class ClientProxy extends CommonProxy{
|
||||
for(Item item : OSRefs.registeredOSItems)
|
||||
{
|
||||
if(item instanceof Item)
|
||||
{
|
||||
OSLogger.debug("[OrbSAT] Register render for "+item.getUnlocalizedName().substring(5));
|
||||
final ResourceLocation loc = new ResourceLocation(OSRefs.MODID, item.getUnlocalizedName().substring(5));
|
||||
|
||||
ModelBakery.registerItemVariants(item, loc);
|
||||
ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(loc, "inventory"));
|
||||
{
|
||||
ItemOSBase ieMetaItem = (ItemOSBase) item;
|
||||
if(ieMetaItem.registerSubModels && ieMetaItem.getSubNames() != null && ieMetaItem.getSubNames().length > 0)
|
||||
{
|
||||
for(int meta = 0; meta < ieMetaItem.getSubNames().length; meta++)
|
||||
{
|
||||
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
|
||||
{
|
||||
|
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
|
||||
itemGroup.orbsat=Orbital Satellite
|
||||
#Items
|
||||
item.laserDesignator.name=Targeting Satellite Computer
|
||||
item.designatorCircuit.name=Targeting Computer Circuit
|
||||
item.orbsat.components.laserDesignator.name=Targeting Satellite Computer
|
||||
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
|
||||
itemGroup.orbsat=Satellite Orbital
|
||||
#Items
|
||||
item.laserDesignator.name=Ordinateur de visée du satellite
|
||||
item.designatorCircuit.name=Circuit pour ordinateur de visée
|
||||
item.orbsat.components.laserDesignator.name=Ordinateur de visée du satellite
|
||||
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": {
|
||||
"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