icbm/src/main/java/icbm/wanyi/ICBMContraption.java
2022-12-10 12:08:47 +01:00

267 lines
11 KiB
Java

package icbm.wanyi;
import calclavia.lib.UniversalRecipes;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import icbm.core.ICBMTab;
import icbm.core.MainBase;
import icbm.wanyi.b.BCamouflage;
import icbm.wanyi.b.BConcrete;
import icbm.wanyi.b.BGlassButton;
import icbm.wanyi.b.BGlassPressurePlate;
import icbm.wanyi.b.BGlassReinforced;
import icbm.wanyi.b.BProximityDetector;
import icbm.wanyi.b.BSpikes;
import icbm.wanyi.b.IBConcrete;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import universalelectricity.core.item.ElectricItemHelper;
import universalelectricity.core.item.ItemElectric;
@Mod(
modid = "ICBM|Contraption",
name = "ICBM|Contraption",
version = MainBase.VERSION,
dependencies = "required-after:AtomicScience",
useMetadata = true
)
public class ICBMContraption extends MainBase {
public static final String NAME = "ICBM|Contraption";
public static final String CHANNEL = "ICBM|C";
@Mod.Instance("ICBM|Contraption")
public static ICBMContraption instance;
@Mod.Metadata("ICBM|Contraption")
public static ModMetadata metadata;
@SidedProxy(
clientSide = "icbm.wanyi.ClientProxy", serverSide = "icbm.wanyi.CommonProxy"
)
public static CommonProxy proxy;
public static Block bGlassPressurePlate;
public static Block bGlassButton;
public static Block bProximityDetector;
public static Block bSpikes;
public static Block bCamouflage;
public static Block bConcrete;
public static Block bGlassReinforced;
public static Item itAntidote;
public static ItemElectric itSignalDisrupter;
public static ItemElectric itTracker;
public static SimpleNetworkWrapper channel;
@Mod.EventHandler
@Override
public void preInit(final FMLPreInitializationEvent event) {
super.preInit(event);
NetworkRegistry.INSTANCE.registerGuiHandler(
(Object) this, (IGuiHandler) ICBMContraption.proxy
);
MainBase.CONFIGURATION.load();
ICBMContraption.bGlassPressurePlate = (Block) new BGlassPressurePlate();
ICBMContraption.bGlassButton = (Block) new BGlassButton();
ICBMContraption.bProximityDetector = (Block) new BProximityDetector();
ICBMContraption.bSpikes = (Block) new BSpikes();
ICBMContraption.bCamouflage = (Block) new BCamouflage();
ICBMContraption.bConcrete = (Block) new BConcrete();
ICBMContraption.bGlassReinforced = (Block) new BGlassReinforced();
ICBMContraption.itAntidote = new ItAntidote();
ICBMContraption.itSignalDisrupter = new ItSignalDisrupter();
ICBMContraption.itTracker = new ItTracker();
MainBase.CONFIGURATION.save();
GameRegistry.registerBlock(
ICBMContraption.bGlassPressurePlate, "bGlassPressurePlate"
);
GameRegistry.registerBlock(ICBMContraption.bGlassButton, "bGlassButton");
GameRegistry.registerBlock(
ICBMContraption.bProximityDetector, "bProximityDetector"
);
GameRegistry.registerBlock(ICBMContraption.bCamouflage, "bCamouflage");
GameRegistry.registerBlock(ICBMContraption.bGlassReinforced, "bGlassReinforced");
GameRegistry.registerBlock(ICBMContraption.bSpikes, IBSpikes.class, "bSpikes");
GameRegistry.registerBlock(
ICBMContraption.bConcrete, IBConcrete.class, "bConcrete"
);
GameRegistry.registerItem(ICBMContraption.itAntidote, "itAntidote");
GameRegistry.registerItem(ICBMContraption.itSignalDisrupter, "itSignalDisrupter");
GameRegistry.registerItem(ICBMContraption.itTracker, "itTracker");
ICBMTab.itemStack = new ItemStack(ICBMContraption.bProximityDetector);
ICBMContraption.proxy.preInit();
channel = NetworkRegistry.INSTANCE.newSimpleChannel("icbm_contraption");
int pktId = 0;
channel.registerMessage(
SetSignalDisrupterFrequencyPacketHandler.class,
SetSignalDisrupterFrequencyPacket.class,
pktId++,
Side.SERVER
);
channel.registerMessage(
ProximityDetectorModePacketHandler.class,
ProximityDetectorModePacket.class,
pktId++,
Side.SERVER
);
}
@Mod.EventHandler
public void load(final FMLInitializationEvent evt) {
MainBase.setModMetadata("ICBM|Contraption", ICBMContraption.metadata);
}
@Mod.EventHandler
@Override
public void postInit(final FMLPostInitializationEvent event) {
super.postInit(event);
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bSpikes, 6),
new Object[] { "CCC", "BBB", 'C', Blocks.cactus, 'B', "ingotBronze" }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bSpikes, 6),
new Object[] { "CCC", "BBB", 'C', Blocks.cactus, 'B', Items.iron_ingot }
));
GameRegistry.addRecipe(
new ItemStack(ICBMContraption.bSpikes, 1, 1),
new Object[] { "E", "S", 'E', MainBase.itDu, 'S', ICBMContraption.bSpikes }
);
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bSpikes, 1, 2),
new Object[] { "E", "S", 'E', "dustSulfur", 'S', ICBMContraption.bSpikes }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bCamouflage, 12),
new Object[] { "WGW",
"GCG",
"WGW",
'C',
"calclavia:CIRCUIT_T1",
'G',
Blocks.glass,
'W',
new ItemStack(Blocks.wool, 1, 32767) }
));
if (OreDictionary.getOres(UniversalRecipes.BATTERY).size() > 0) {
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack((Item) ICBMContraption.itTracker),
new Object[] { " Z ",
"SBS",
"SCS",
'Z',
Items.compass,
'C',
"calclavia:CIRCUIT_T1",
'B',
ElectricItemHelper.getUncharged(
OreDictionary.getOres(UniversalRecipes.BATTERY).get(0)
),
'S',
"ingotSteel" }
));
}
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bGlassPressurePlate, 1, 0),
new Object[] { "##", '#', Blocks.glass }
));
GameRegistry.addRecipe(
new ItemStack(ICBMContraption.bGlassButton, 2),
new Object[] { "G", "G", 'G', Blocks.glass }
);
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
ICBMContraption.bProximityDetector,
new Object[] { "SSS",
"S?S",
"SSS",
'S',
"ingotSteel",
'?',
ElectricItemHelper.getUncharged(ICBMContraption.itTracker) }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
(Item) ICBMContraption.itSignalDisrupter,
new Object[] { "WWW",
"SCS",
"SSS",
'S',
"ingotSteel",
'C',
"calclavia:CIRCUIT_T1",
'W',
"calclavia:WIRE" }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.itAntidote, 6),
new Object[] { "@@@", "@@@", "@@@", '@', Items.pumpkin_seeds }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.itAntidote, 6),
new Object[] { "@@@", "@@@", "@@@", '@', Items.melon_seeds }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.itAntidote),
new Object[] { "@@@", "@@@", "@@@", '@', Items.wheat_seeds }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bConcrete, 8, 0),
new Object[] { "SGS",
"GWG",
"SGS",
'G',
Blocks.gravel,
'S',
Blocks.sand,
'W',
Items.water_bucket }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bConcrete, 8, 1),
new Object[] { "COC",
"OCO",
"COC",
'C',
new ItemStack(ICBMContraption.bConcrete, 1, 0),
'O',
Blocks.obsidian }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bConcrete, 8, 2),
new Object[] { "COC",
"OCO",
"COC",
'C',
new ItemStack(ICBMContraption.bConcrete, 1, 1),
'O',
"ingotSteel" }
));
GameRegistry.addRecipe((IRecipe) new ShapedOreRecipe(
new ItemStack(ICBMContraption.bGlassReinforced, 8),
new Object[] { "IGI", "GIG", "IGI", 'G', Blocks.glass, 'I', Items.iron_ingot }
));
ICBMContraption.proxy.init();
}
@Override
protected String getChannel() {
return "ICBM|C";
}
}