Skip to content

Commit

Permalink
Add a gear-compatibility module. This adds a gear-cast for all oredic…
Browse files Browse the repository at this point in the history
…ted gears.
  • Loading branch information
bonii-xx committed Feb 9, 2015
1 parent 68b1267 commit a2226a4
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 0 deletions.
1 change: 1 addition & 0 deletions resources/assets/tinker/lang/en_US.lang
Expand Up @@ -259,6 +259,7 @@ item.tconstruct.MetalPattern.shuriken.name=Shuriken Cast
item.tconstruct.MetalPattern.crossbowlimb.name=Crossbow Limb Cast
item.tconstruct.MetalPattern.crossbowbody.name=Crossbow Body Cast
item.tconstruct.MetalPattern.bowlimb.name=Bow Limb Cast
item.tconstruct.GearPattern.name=Gear Cast

item.tconstruct.Materials.PaperStack.name=Paper Stack
item.tconstruct.Materials.SlimeCrystal.name=Slime Crystal
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/main/java/tconstruct/TConstruct.java
Expand Up @@ -34,6 +34,7 @@
import tconstruct.mechworks.TinkerMechworks;
import tconstruct.mechworks.landmine.behavior.Behavior;
import tconstruct.mechworks.landmine.behavior.stackCombo.SpecialStackHandler;
import tconstruct.plugins.gears.TinkerGears;
import tconstruct.plugins.fmp.TinkerFMP;
import tconstruct.plugins.ic2.TinkerIC2;
import tconstruct.plugins.imc.TinkerAE2;
Expand Down Expand Up @@ -140,6 +141,7 @@ public void preInit (FMLPreInitializationEvent event)
pulsar.registerPulse(new TinkerTE4());
pulsar.registerPulse(new TinkerFMP());
pulsar.registerPulse(new TinkerUBC());
pulsar.registerPulse(new TinkerGears());
/*pulsar.registerPulse(new TinkerPrayers());
pulsar.registerPulse(new TinkerCropify());*/

Expand Down
77 changes: 77 additions & 0 deletions src/main/java/tconstruct/plugins/gears/TinkerGears.java
@@ -0,0 +1,77 @@
package tconstruct.plugins.gears;

import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import mantle.pulsar.pulse.Handler;
import mantle.pulsar.pulse.Pulse;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import tconstruct.TConstruct;
import tconstruct.library.TConstructRegistry;
import tconstruct.smeltery.TinkerSmeltery;
import tconstruct.tools.items.Pattern;

import java.util.LinkedList;
import java.util.List;
import java.util.Map;

@Pulse(id = "Tinkers Gears", description = "Adds a gear cast if other mods provide gears", pulsesRequired = "Tinkers' Smeltery")
public class TinkerGears {
public static Item gearCast;

@Handler
public void preInit(FMLPreInitializationEvent event) {
TConstruct.logger.info("Gear module active. Adding gear cast.");
gearCast = new Item();
gearCast.setTextureName("tinker:materials/gear_cast");
gearCast.setUnlocalizedName("tconstruct.GearPattern");

GameRegistry.registerItem(gearCast, "gearCast");
}

@Handler
public void postInit(FMLPostInitializationEvent event) {
ItemStack cast = new ItemStack(gearCast);
FluidStack aluCastLiquid = new FluidStack(TinkerSmeltery.moltenAlubrassFluid, TConstruct.ingotLiquidValue);
FluidStack goldCastLiquid = new FluidStack(TinkerSmeltery.moltenGoldFluid, TConstruct.ingotLiquidValue*2);

// find all gears in the registry
for(String oreName : OreDictionary.getOreNames()) {
if(!oreName.startsWith("gear"))
continue;

List<ItemStack> gears = OreDictionary.getOres(oreName);

// register every gear besides wooden gear for creating a gear cast
if(!oreName.equals("gearWood")) {
for(ItemStack g : gears) {
TConstructRegistry.getTableCasting().addCastingRecipe(cast, aluCastLiquid, g, false, 50);
TConstructRegistry.getTableCasting().addCastingRecipe(cast, goldCastLiquid, g, false, 50);
}
}

// find a fluid that fits the gear
String material = oreName.substring(4);
// try the oredict name directly
Fluid fluid = FluidRegistry.getFluid(material);
// or lowercased
if(fluid == null)
fluid = FluidRegistry.getFluid(material.toLowerCase());
// or in the tinkers liquid format
if(fluid == null)
fluid = FluidRegistry.getFluid(material.toLowerCase() + ".molten");

// found one?
if(fluid != null) {
ItemStack gear = gears.get(0);
FluidStack liquid = new FluidStack(fluid.getID(), TConstruct.ingotLiquidValue*4);
TConstructRegistry.getTableCasting().addCastingRecipe(gear, liquid, cast, 55);
}
}
}
}

0 comments on commit a2226a4

Please sign in to comment.