aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/xmod/sc2/HANDLER_SC2.java28
-rw-r--r--src/Java/gtPlusPlus/xmod/sc2/items/ItemCartModuleEx.java100
-rw-r--r--src/Java/gtPlusPlus/xmod/sc2/modules/workers/tools/ModuleExoticFarmer.java11
-rw-r--r--src/Java/vswe/stevescarts/ModuleData/ModuleDataLoader.java6
4 files changed, 134 insertions, 11 deletions
diff --git a/src/Java/gtPlusPlus/xmod/sc2/HANDLER_SC2.java b/src/Java/gtPlusPlus/xmod/sc2/HANDLER_SC2.java
index d94fb7b7f8..05e87a5990 100644
--- a/src/Java/gtPlusPlus/xmod/sc2/HANDLER_SC2.java
+++ b/src/Java/gtPlusPlus/xmod/sc2/HANDLER_SC2.java
@@ -1,13 +1,37 @@
package gtPlusPlus.xmod.sc2;
+import java.util.HashMap;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.xmod.sc2.items.ItemCartModuleEx;
+import vswe.stevescarts.Items.ItemCartModule;
+import vswe.stevescarts.ModuleData.ModuleData;
import vswe.stevescarts.ModuleData.ModuleDataLoader;
public class HANDLER_SC2 {
- public static void preInit(){
- if (LoadedMods.StevesCarts){
+ public static ItemCartModule modules;
+ public static HashMap<Byte, Boolean> validModules;
+
+ public synchronized static void preInit(){
+ if (LoadedMods.StevesCarts){
+ modules = new ItemCartModuleEx();
+ GameRegistry.registerItem((Item) modules, "CartModule++");
ModuleDataLoader.load();
+ for (final ModuleData module : ModuleDataLoader.getList().values()) {
+ if (!module.getIsLocked()) {
+ validModules.put(module.getID(), true);
+ }
+ }
+ for (final ModuleData module : ModuleDataLoader.getList().values()) {
+ final ItemStack submodule = new ItemStack((Item) modules, 1, (int) module.getID());
+ GameRegistry.registerCustomItemStack(submodule.getUnlocalizedName(), submodule);
+ }
}
}
diff --git a/src/Java/gtPlusPlus/xmod/sc2/items/ItemCartModuleEx.java b/src/Java/gtPlusPlus/xmod/sc2/items/ItemCartModuleEx.java
new file mode 100644
index 0000000000..8ffb3988c8
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/sc2/items/ItemCartModuleEx.java
@@ -0,0 +1,100 @@
+package gtPlusPlus.xmod.sc2.items;
+
+import vswe.stevescarts.Modules.ModuleBase;
+import net.minecraft.nbt.NBTTagCompound;
+import vswe.stevescarts.TileEntities.TileEntityCartAssembler;
+import net.minecraft.entity.player.EntityPlayer;
+import java.util.List;
+import java.util.Iterator;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import vswe.stevescarts.ModuleData.ModuleData;
+import vswe.stevescarts.ModuleData.ModuleDataLoader;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.creativetab.CreativeTabs;
+import vswe.stevescarts.StevesCarts;
+import vswe.stevescarts.Items.ItemCartModule;
+
+import net.minecraft.util.IIcon;
+import net.minecraft.item.Item;
+
+public class ItemCartModuleEx extends ItemCartModule {
+ IIcon unknownIcon;
+
+ public ItemCartModuleEx() {
+
+ }
+
+ public String getName(final ItemStack par1ItemStack) {
+ final ModuleData data = this.getModuleData(par1ItemStack, true);
+ if (data == null) {
+ return "Unknown SC2 module";
+ }
+ return data.getName();
+ }
+
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(final int dmg) {
+ final ModuleData data = ModuleData.getList().get((byte) dmg);
+ if (data != null) {
+ return data.getIcon();
+ }
+ return this.unknownIcon;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(final IIconRegister register) {
+ for (final ModuleData module : ModuleData.getList().values()) {
+ module.createIcon(register);
+ }
+ final StringBuilder sb = new StringBuilder();
+ StevesCarts.instance.getClass();
+ this.unknownIcon = register
+ .registerIcon(sb.append("stevescarts").append(":").append("unknown_icon").toString());
+ }
+
+ public String getUnlocalizedName() {
+ return "item.SC2:unknownmodule";
+ }
+
+ public String getUnlocalizedName(final ItemStack item) {
+ final ModuleData data = this.getModuleData(item, true);
+ if (data != null) {
+ return "item.SC2:" + data.getRawName();
+ }
+ return this.getUnlocalizedName();
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(final Item item, final CreativeTabs par2CreativeTabs, final List par3List) {
+ for (final ModuleData module : ModuleDataLoader.getList().values()) {
+ if (module.getIsValid()) {
+ par3List.add(module.getItemStack());
+ }
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(final ItemStack par1ItemStack, final EntityPlayer par2EntityPlayer, final List par3List,
+ final boolean par4) {
+ final ModuleData module = this.getModuleData(par1ItemStack, true);
+ if (module != null) {
+ module.addInformation(par3List, par1ItemStack.getTagCompound());
+ } else if (par1ItemStack != null && par1ItemStack.getItem() instanceof ItemCartModuleEx) {
+ par3List.add("Module id " + par1ItemStack.getItemDamage());
+ } else {
+ par3List.add("Unknown module id");
+ }
+ }
+
+ public ModuleData getModuleData(final ItemStack itemstack, final boolean ignoreSize) {
+ if (itemstack != null && itemstack.getItem() instanceof ItemCartModuleEx
+ && (ignoreSize || itemstack.stackSize != TileEntityCartAssembler.getRemovedSize())) {
+ return ModuleData.getList().get((byte) itemstack.getItemDamage());
+ }
+ return null;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/sc2/modules/workers/tools/ModuleExoticFarmer.java b/src/Java/gtPlusPlus/xmod/sc2/modules/workers/tools/ModuleExoticFarmer.java
index 50d544100f..48f8cfa9a7 100644
--- a/src/Java/gtPlusPlus/xmod/sc2/modules/workers/tools/ModuleExoticFarmer.java
+++ b/src/Java/gtPlusPlus/xmod/sc2/modules/workers/tools/ModuleExoticFarmer.java
@@ -211,8 +211,8 @@ public abstract class ModuleExoticFarmer extends ModuleFarmer {
return false;
}
- public boolean isSeedValid(final ItemStack seed) {
- return seed.getItem() == Items.wheat_seeds || seed.getItem() == Items.potato || seed.getItem() == Items.carrot;
+ public boolean isSeedValid(final ItemStack seed) {
+ return getBlockFromPams(seed) != null || seed.getItem() == Items.wheat_seeds || seed.getItem() == Items.potato || seed.getItem() == Items.carrot;
}
public Block getCropFromSeed(final ItemStack seed) {
@@ -438,11 +438,4 @@ public abstract class ModuleExoticFarmer extends ModuleFarmer {
return block instanceof BlockCrops && m == 7;
}
- protected boolean isFarming() {
- if (this.isPlaceholder()) {
- return this.getSimInfo().getIsFarming();
- }
- return this.getCart().isEngineBurning() && this.getDw(0) != 0;
- }
-
} \ No newline at end of file
diff --git a/src/Java/vswe/stevescarts/ModuleData/ModuleDataLoader.java b/src/Java/vswe/stevescarts/ModuleData/ModuleDataLoader.java
index 21d518f527..88ba6f062b 100644
--- a/src/Java/vswe/stevescarts/ModuleData/ModuleDataLoader.java
+++ b/src/Java/vswe/stevescarts/ModuleData/ModuleDataLoader.java
@@ -11,6 +11,12 @@ import vswe.stevescarts.Modules.ModuleBase;
public class ModuleDataLoader {
+ private static HashMap<Byte, ModuleData> moduleListEx;
+
+ public static HashMap<Byte, ModuleData> getList() {
+ return moduleListEx;
+ }
+
public static void load() {
HashMap<Byte, ModuleData> u = ModuleData.getList();
if (u.size() < Byte.MAX_VALUE) {