diff options
Diffstat (limited to 'src/Java/miscutil')
56 files changed, 3859 insertions, 0 deletions
diff --git a/src/Java/miscutil/MiscUtils.java b/src/Java/miscutil/MiscUtils.java new file mode 100644 index 0000000000..518d570d67 --- /dev/null +++ b/src/Java/miscutil/MiscUtils.java @@ -0,0 +1,118 @@ +package miscutil; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import miscutil.core.CommonProxy; +import miscutil.core.commands.CommandMath; +import miscutil.core.creativetabs.TMCreativeTabs; +import miscutil.core.handler.CraftingManager; +import miscutil.core.lib.Strings; +import miscutil.core.util.Utils; +import net.minecraftforge.common.MinecraftForge; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +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.event.FMLServerStartingEvent; +import cpw.mods.fml.common.event.FMLServerStoppingEvent; + +@Mod(modid=Strings.MODID, name="Misc. Utils", version=Strings.VERSION, dependencies="required-after:gregtech") +public class MiscUtils +implements ActionListener +{ + + //Vars + + + @Mod.Instance(Strings.MODID) + public static MiscUtils instance; + + @SidedProxy(clientSide="miscutil.core.proxy.ClientProxy", serverSide="miscutil.core.proxy.ServerProxy") + public static CommonProxy proxy; + + + //Pre-Init + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) + { + + Utils.LOG_INFO("Doing some house cleaning."); + TMCreativeTabs.initialiseTabs(); + //TMEntity.mainRegistry(); + CraftingManager.mainRegistry(); + //TMWorld.mainRegistry(); + //TMHooks.mainRegistry(); + proxy.registerTileEntities(); + proxy.registerRenderThings(); + proxy.preInit(event); + + + + } + + //Init + @Mod.EventHandler + public void init(FMLInitializationEvent event) + { + /* Utils.LOG_INFO("Double checking floating point precision."); + try { + Thread.sleep(100); + Benchmark GammeRayBurst = new Benchmark(); + GammeRayBurst.math(); + } catch (InterruptedException | ParseException | NumberFormatException | UnknownFormatConversionException | MissingFormatArgumentException e) { + if (Strings.DEBUG){ + e.printStackTrace(); + Utils.LOG_INFO("Math went wrong somewhere."); + } + ; + }*/ + proxy.init(event); + /*if (Strings.DEBUG){ + Benchmark GammeRayBurst = new Benchmark(); + String Insight = GammeRayBurst.superhash("This is Absolution"); + FMLLog.info(Insight); + Utils.LOG_INFO("Math is ok."); + }*/ + + MinecraftForge.EVENT_BUS.register(this); + FMLCommonHandler.instance().bus().register(this); + proxy.registerNetworkStuff(); + } + + //Post-Init + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent event) { + Utils.LOG_INFO("Tidying things up."); + proxy.postInit(event); + } + + @EventHandler + public void serverStarting(FMLServerStartingEvent event) + { + + event.registerServerCommand(new CommandMath()); + + //while (Strings.DEBUG){ + //Thread.setDefaultUncaughtExceptionHandler(null); + //} + + } + + @Mod.EventHandler + public void serverStopping(FMLServerStoppingEvent event) + { + + + } + + @Override + public void actionPerformed(ActionEvent arg0) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/Java/miscutil/core/CommonProxy.java b/src/Java/miscutil/core/CommonProxy.java new file mode 100644 index 0000000000..8b0f6c8b2a --- /dev/null +++ b/src/Java/miscutil/core/CommonProxy.java @@ -0,0 +1,70 @@ +package miscutil.core; + +import miscutil.core.block.ModBlocks; +import miscutil.core.gui.ModGUI; +import miscutil.core.item.ModItems; +import miscutil.core.lib.Strings; +import miscutil.core.tileentities.ModTileEntities; +import miscutil.core.util.Utils; +import miscutil.gregtech.init.InitGregtech; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class CommonProxy { + + public void preInit(FMLPreInitializationEvent e) { + ModItems.init(); + ModBlocks.init(); + + + //Register Gregtech related items + if (Loader.isModLoaded("gregtech") == true) { + Utils.LOG_INFO("Gregtech Found - Loading Resources."); + Strings.GREGTECH = true; + Utils.LOG_INFO("Begining registration & initialization of Gregtech related content."); + // Init Gregtech + InitGregtech.run(); + + } + else { + Utils.LOG_WARNING("Gregtech not Found - Skipping Resources."); + Strings.GREGTECH = false; + } + + } + + public void init(FMLInitializationEvent e) { + + + + } + + public void postInit(FMLPostInitializationEvent e) { + + } + + public void registerNetworkStuff(){ + ModGUI.init(); + //NetworkRegistry.INSTANCE.registerGuiHandler(MiscUtils.instance, new BloodSteelFurnaceGuiHandler()); + + } + + public void registerTileEntities(){ + ModTileEntities.init(); + //GameRegistry.registerTileEntity(TileEntityBloodSteelChest.class, "tileEntityBloodSteelChest"); + //GameRegistry.registerTileEntity(TileEntityBloodSteelFurnace.class, "tileEntityBloodSteelFurnace"); + //GameRegistry.registerTileEntity(TileEntityBloodSteelChest.class, Strings.MODID); + //GameRegistry.registerTileEntity(TileEntityArcaneInfuser.class, "TileEntityArcaneInfuser"); + } + + public void registerRenderThings() { + + } + + public int addArmor(String armor) { + return 0; + } + +} diff --git a/src/Java/miscutil/core/block/AdvancedBlock.java b/src/Java/miscutil/core/block/AdvancedBlock.java new file mode 100644 index 0000000000..2a81341838 --- /dev/null +++ b/src/Java/miscutil/core/block/AdvancedBlock.java @@ -0,0 +1,31 @@ +package miscutil.core.block; + +import miscutil.core.lib.Strings; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class AdvancedBlock extends Block { + + protected AdvancedBlock(String unlocalizedName, Material material, CreativeTabs x, float blockHardness, float blockResistance, float blockLightLevel, + String blockHarvestTool, int blockHarvestLevel, SoundType BlockSound) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Strings.MODID + ":" + unlocalizedName); + this.setCreativeTab(x); + this.setHardness(blockHardness); //block Hardness + this.setResistance(blockResistance); + this.setLightLevel(blockLightLevel); + this.setHarvestLevel(blockHarvestTool, blockHarvestLevel); + this.setStepSound(BlockSound); + } + + @Override + public boolean onBlockActivated(World p_149727_1_, int p_149727_2_, int p_149727_3_, int p_149727_4_, EntityPlayer p_149727_5_, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) + { + return false; + } + +} diff --git a/src/Java/miscutil/core/block/BasicBlock.java b/src/Java/miscutil/core/block/BasicBlock.java new file mode 100644 index 0000000000..63c1044b03 --- /dev/null +++ b/src/Java/miscutil/core/block/BasicBlock.java @@ -0,0 +1,22 @@ +package miscutil.core.block; + +import miscutil.core.creativetabs.TMCreativeTabs; +import miscutil.core.lib.Strings; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BasicBlock extends Block { + + protected BasicBlock(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(Strings.MODID + ":" + unlocalizedName); + this.setCreativeTab(TMCreativeTabs.tabBlock); + this.setHardness(2.0F); + this.setResistance(6.0F); + this.setLightLevel(0.0F); + this.setHarvestLevel("pickaxe", 2); + this.setStepSound(soundTypeMetal); + } + +} diff --git a/src/Java/miscutil/core/block/ModBlocks.java b/src/Java/miscutil/core/block/ModBlocks.java new file mode 100644 index 0000000000..7f1df843be --- /dev/null +++ b/src/Java/miscutil/core/block/ModBlocks.java @@ -0,0 +1,90 @@ +package miscutil.core.block; + +import miscutil.core.util.Utils; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import cpw.mods.fml.common.registry.GameRegistry; + +public final class ModBlocks { + + //Blood Steel + public static Block blockBloodSteel; + public static Block blockStaballoy; + public static Block blockToolBuilder; + //public static Block blockBloodSteelChest; + + //BloodSteelorial Furnace + //public static Block tutFurnace; + //public static Block tutFurnaceActive; + + //BloodSteelorial Chest + //public static Block tutChest; + + //Arcane Infuser + //public static Block arcaneInfuser; + //public static Block arcaneInfuserActive; + + //Block Storage + //public static Block emxBlockStorage; + + + public static void init() { + Utils.LOG_INFO("Initializing Blocks."); + //BloodSteelorial Furnace - Must Init blocks first as they're not static. + /** if (Strings.DEBUG){ + FMLLog.info("Loading Furnace.");} + tutFurnace= new BloodSteelFurnace(false).setBlockName("BloodSteelFurnace").setCreativeTab(TMCreativeTabs.tabBlock); + tutFurnaceActive= new BloodSteelFurnace(true).setBlockName("BloodSteelFurnaceActive"); + + //Arcane Infuser - Must Init blocks first as they're not static. + if (Strings.DEBUG){ + FMLLog.info("Loading Arcane Infuser.");} + arcaneInfuser = new ArcaneInfuser(false).setBlockName("ArcaneInfuser").setCreativeTab(TMCreativeTabs.tabBlock); + arcaneInfuserActive = new ArcaneInfuser(true).setBlockName("ArcaneInfuserActive"); + + //Blood Steel Chest + if (Strings.DEBUG){ + FMLLog.info("Loading Blood Steel Chest.");} + tutChest = new BloodSteelChest(0).setBlockName("BloodSteelChest").setCreativeTab(TMCreativeTabs.tabBlock); + + */ + //BlockStorage + //emxBlockStorage = new BlockStorage(); + + //Register Blocks next - TODO + registerBlocks(); + } + + public static void registerBlocks(){ + + Utils.LOG_INFO("Registering Blocks."); + + //Blood Steel Block + GameRegistry.registerBlock(blockBloodSteel = new BasicBlock("blockBloodSteel", Material.iron), "blockBloodSteel"); + + //Staballoy Block + GameRegistry.registerBlock(blockStaballoy = new BasicBlock("blockStaballoy", Material.iron), "blockStaballoy"); + + //Blood Steel Block //Name, Material, Hardness, Resistance, Light level, Tool, tool level, sound + //GameRegistry.registerBlock(blockToolBuilder = new AdvancedBlock("blockToolBuilder", Material.circuits, TMCreativeTabs.tabMachines, 1F, 5F, 0F, "pickaxe", 1, Block.soundTypeWood), "blockToolBuilder"); + + /** TODO re-enable blocks when working. + + + //Blood Steel Chest + GameRegistry.registerBlock(tutChest, tutChest.getUnlocalizedName()); + + //BloodSteelorial Furnace + GameRegistry.registerBlock(tutFurnace, tutFurnace.getUnlocalizedName()); + GameRegistry.registerBlock(tutFurnaceActive, tutFurnaceActive.getUnlocalizedName()); + + //Arcane Infuser + GameRegistry.registerBlock(arcaneInfuser, arcaneInfuser.getUnlocalizedName()); + GameRegistry.registerBlock(arcaneInfuserActive, arcaneInfuserActive.getUnlocalizedName()); + **/ + + //Block Storage + //GameRegistry.registerBlock(emxBlockStorage, emxBlockStorage.getUnlocalizedName()); + } + +}
\ No newline at end of file diff --git a/src/Java/miscutil/core/commands/CommandMath.java b/src/Java/miscutil/core/commands/CommandMath.java new file mode 100644 index 0000000000..933684d277 --- /dev/null +++ b/src/Java/miscutil/core/commands/CommandMath.java @@ -0,0 +1,195 @@ +package miscutil.core.commands; + +import java.util.ArrayList; +import java.util.List; + +import miscutil.core.util.Utils; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + + +public class CommandMath implements ICommand +{ + private final List aliases; + + protected String fullEntityName; + protected Entity conjuredEntity; + + public CommandMath() + { + aliases = new ArrayList(); + + aliases.add("hometele"); + + aliases.add("warphome"); + + } + + @Override + public int compareTo(Object o) + { + return 0; + + } + + @Override + public String getCommandName() + { + return "bed"; + + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + return "/bed [Teleports you to your bed for XP]"; + + } + + @Override + public List getCommandAliases() + { + return this.aliases; + + } + + public void processCommand(ICommandSender S, String[] argString) + { + World W = S.getEntityWorld(); + CommandUtils C = new CommandUtils(); + EntityPlayer P = C.getPlayer(S); + //System.out.println(P.getCommandSenderName()); + //System.out.println(P.getDisplayName()); + if (W.isRemote) + + { + + System.out.println("Not processing on Client side"); + + } + + else + + { + + System.out.println("Processing on Server side - Home Teleport engaged by: "+P.getDisplayName()); + + int XP_TOTAL = P.experienceTotal; + Utils.LOG_WARNING("Total Xp:" + XP_TOTAL); + ChunkCoordinates X = P.getPlayerCoordinates(); + Utils.LOG_WARNING("Player Location: "+X); + ChunkCoordinates Y = null; + Utils.LOG_WARNING("Bed Location: "+Y); + if (!P.getBedLocation(0).equals(null)){ + Y = P.getBedLocation(0); + Utils.LOG_WARNING("Bed Location: "+Y); + } + else { + Y = W.getSpawnPoint(); + Utils.LOG_WARNING("Spawn Location: "+Y); + } + if (Y == null) { + Y = W.getSpawnPoint(); + Utils.LOG_WARNING("Spawn Location: "+Y); + } + + int x1 = X.posX; + Utils.LOG_WARNING("X1: "+x1); + int x2 = Y.posX; + Utils.LOG_WARNING("X2: "+x2); + int y1 = X.posY; + Utils.LOG_WARNING("Y1: "+y1); + int y2 = Y.posY; + Utils.LOG_WARNING("Y2: "+y2); + int z1 = X.posZ; + Utils.LOG_WARNING("Z1: "+z1); + int z2 = Y.posZ; + Utils.LOG_WARNING("Z2: "+z2); + + + double d = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)); + String xpCost = String.valueOf((int)(d*0.15)); + + Utils.LOG_WARNING("d:" + d); + Utils.LOG_WARNING("-----------------------------------------"); + Utils.LOG_WARNING("Actual math formulae"); + Utils.LOG_WARNING(String.valueOf(d)); + Utils.LOG_WARNING("-----------------------------------------"); + Utils.LOG_WARNING("Xp Cost based on answer B."); + Utils.LOG_WARNING(String.valueOf(d*0.15) + " | " + String.valueOf(xpCost)); + Utils.LOG_WARNING("-----------------------------------------"); + Utils.LOG_WARNING("Xp Total"); + Utils.LOG_WARNING(String.valueOf(XP_TOTAL)); + Utils.LOG_WARNING("-----------------------------------------"); + + + + if ((XP_TOTAL-Float.valueOf(xpCost)) > 0){ + EntityXPOrb E = new EntityXPOrb(W, P.posX, P.posY + 1.62D - (double) P.yOffset, P.posZ, 1); + //E.moveTowards((double) Y.posX + 0.5D, (int) Y.posY + 3, (double) Y.posZ + 0.5D); + E.setVelocity((double) Y.posX + 0.5D, (int) Y.posY + 0.1, (double) Y.posZ + 0.5D); + W.spawnEntityInWorld(E); + W.playAuxSFXAtEntity((EntityPlayer) null, 1002, (int) P.posX, (int) P.posY, (int) P.posZ, 0); + P.setPositionAndUpdate(x2, y2+1, z2); + + //gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Movement | X:"+x2+" | Y:"+y2+" | Z:"+z2); + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Distance Traveled | "+String.valueOf((int)(d)) + " Blocks & " + xpCost + "xp"); + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "You suddenly feel at home."); + P.experienceTotal = (int) (XP_TOTAL-Float.valueOf(xpCost)); + if (!xpCost.equals("0") && Float.valueOf(xpCost) > 0){ + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "...At the loss of "+xpCost+" xp."); + } + else if (xpCost.equals("0")){ + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "...At the loss of very little xp."); + } + else { + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Something went wrong with the math, have this one on the house. :)"); + } + } + + else { + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "You don't feel you're able to do this yet."); + } + + } + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender var1) + { + return true; + + } + + @Override + public List addTabCompletionOptions(ICommandSender var1, String[] var2) + { + // TODO Auto-generated method stub + + return null; + + } + + @Override + public boolean isUsernameIndex(String[] var1, int var2) + { + // TODO Auto-generated method stub + + return false; + + } + + public boolean playerUsesCommand(World W, EntityPlayer P, int cost) + { + + + return true; + } + +} + diff --git a/src/Java/miscutil/core/commands/CommandUtils.java b/src/Java/miscutil/core/commands/CommandUtils.java new file mode 100644 index 0000000000..f33263fa40 --- /dev/null +++ b/src/Java/miscutil/core/commands/CommandUtils.java @@ -0,0 +1,20 @@ +package miscutil.core.commands; + +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; + +public class CommandUtils { + + public EntityPlayer getPlayer(ICommandSender icommandsender){ + EntityPlayer player; + + if(icommandsender instanceof EntityPlayer){ + player = (EntityPlayer)icommandsender; + return player; + } + else { + return null; + } + } + +} diff --git a/src/Java/miscutil/core/creativetabs/MiscUtilCreativeTabBlock.java b/src/Java/miscutil/core/creativetabs/MiscUtilCreativeTabBlock.java new file mode 100644 index 0000000000..2db845e04c --- /dev/null +++ b/src/Java/miscutil/core/creativetabs/MiscUtilCreativeTabBlock.java @@ -0,0 +1,18 @@ +package miscutil.core.creativetabs; + +import miscutil.core.block.ModBlocks; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class MiscUtilCreativeTabBlock extends CreativeTabs { + + public MiscUtilCreativeTabBlock(String lable) { + super(lable); + } + + @Override + public Item getTabIconItem() { + return Item.getItemFromBlock(ModBlocks.blockBloodSteel); + } + +} diff --git a/src/Java/miscutil/core/creativetabs/MiscUtilCreativeTabMachines.java b/src/Java/miscutil/core/creativetabs/MiscUtilCreativeTabMachines.java new file mode 100644 index 0000000000..620648d6c0 --- /dev/null +++ b/src/Java/miscutil/core/creativetabs/MiscUtilCreativeTabMachines.java @@ -0,0 +1,18 @@ +package miscutil.core.creativetabs; + +import miscutil.core.block.ModBlocks; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class MiscUtilCr |
