Merge pull request #315 from BrassGoggledCoders/chisel

Chisel
dev
Skylar Sommers 2015-09-06 00:59:45 -04:00
commit 52a6dbdb91
9 changed files with 299 additions and 101 deletions

View File

@ -32,6 +32,10 @@ repositories {
name "RX14"
url "http://mvn.rx14.co.uk/repo/"
}
maven {
name "Tterrag"
url "http://maven.tterrag.com"
}
}
apply plugin: 'forge'
@ -55,7 +59,9 @@ dependencies {
compile 'com.mod-buildcraft:buildcraft:6.4.16:dev'
compile 'net.industrial-craft:industrialcraft-2:2.2.727-experimental:api'
compile 'Azanor:Thaumcraft:4.2.3.5:deobf@jar'
compile name: "Botania" , group: "vazkii.botania", version: "r1.6-190.6", classifier: "deobf"
compile 'team.chisel:Chisel:2.9.0.3:deobf'
compile 'team.chisel.ctmlib:CTMLib:MC1.7.10-1.3.0.2:deobf'
compile name: "Botania", group: "vazkii.botania", version: "r1.6-190.6", classifier: "deobf"
compile files("libs/Railcraft_1.7.10-9.7.0.0-dev.jar")
}

View File

@ -12,50 +12,31 @@
*/
package steamcraft.common;
import java.io.File;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import boilerplate.client.GuiHandler;
import boilerplate.common.compathandler.FMPCompatHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLMissingMappingsEvent;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping;
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.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.GameRegistry.Type;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.MinecraftForge;
import boilerplate.client.GuiHandler;
import boilerplate.common.compathandler.FMPCompatHandler;
import steamcraft.common.compat.CompatabilityLayer;
import steamcraft.common.compat.CompatibilityHandler;
import steamcraft.common.config.Config;
import steamcraft.common.config.ConfigGeneral;
import steamcraft.common.config.ConfigWorldGen;
import steamcraft.common.init.InitAchievements;
import steamcraft.common.init.InitBiomes;
import steamcraft.common.init.InitBlocks;
import steamcraft.common.init.InitEntities;
import steamcraft.common.init.InitItems;
import steamcraft.common.init.InitMisc;
import steamcraft.common.init.InitPackets;
import steamcraft.common.init.InitRecipes;
import steamcraft.common.lib.BucketHandler;
import steamcraft.common.lib.CommandSteamcraft;
import steamcraft.common.lib.CreativeTabSteamcraft;
import steamcraft.common.lib.LoggerSteamcraft;
import steamcraft.common.lib.ModInfo;
import steamcraft.common.init.*;
import steamcraft.common.lib.*;
import steamcraft.common.lib.events.EventHandlerClient;
import steamcraft.common.lib.events.EventHandlerFML;
import steamcraft.common.lib.events.EventHandlerForge;
@ -65,6 +46,8 @@ import steamcraft.common.worldgen.structure.MapGenCustomScatteredFeature;
import steamcraft.common.worldgen.structure.StructureUndercityPieces;
import steamcraft.common.worldgen.structure.StructureUndercityStart;
import java.io.File;
/**
* @author Surseance
* @commentary by Arnold
@ -96,6 +79,7 @@ public class Steamcraft
MinecraftForge.EVENT_BUS.register(new BucketHandler());
CompatabilityLayer.initCompatItems();
CompatibilityHandler.preInit(event);
LoggerSteamcraft.info("Finished Preinit");
}
@ -134,6 +118,7 @@ public class Steamcraft
InitBiomes.init();
FMPCompatHandler.doRegister();
CompatibilityHandler.init(event);
LoggerSteamcraft.info("Finished Init");
}
@ -158,6 +143,7 @@ public class Steamcraft
if (Loader.isModLoaded("ImmersiveEngineering"))
LoggerSteamcraft.info("Evening to the distingushed ladies and gentlemen of the ImmersiveEngineering club!");
CompatibilityHandler.postInit(event);
/*
* if(event.getSide() == Side.CLIENT) { // Autopopulate item/block lists
* from creative tab Iterator iterator = Item.itemRegistry.iterator();

View File

@ -0,0 +1,64 @@
package steamcraft.common.compat;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import steamcraft.common.compat.chisel.ChiselCompat;
import steamcraft.common.lib.LoggerSteamcraft;
import java.util.ArrayList;
/**
* Created by Skylar on 9/2/2015.
*/
public class CompatibilityHandler
{
private static ArrayList<ModCompat> MODCOMPAT_ENABLED = new ArrayList<ModCompat>();
public static ArrayList<ModCompat> getModCompat() {
if(MODCOMPAT_ENABLED.isEmpty()) {
MODCOMPAT_ENABLED.add(new ChiselCompat());
}
return MODCOMPAT_ENABLED;
}
public static void preInit(FMLPreInitializationEvent event)
{
for(ModCompat modCompat : getModCompat())
{
if(!modCompat.areRequirementsMet() && modCompat.getIsActive())
{
modCompat.setIsActive(false);
LoggerSteamcraft.error("Requirements are not met for " + modCompat.getName() + ". Deactivating");
}
if(modCompat.getIsActive())
{
LoggerSteamcraft.info("Loading " + modCompat.getName() + " module");
}
}
for(ModCompat modCompat : getModCompat())
{
if(modCompat.getIsActive())
modCompat.preInit(event);
}
}
public static void init(FMLInitializationEvent event)
{
for(ModCompat modCompat : getModCompat())
{
if(modCompat.getIsActive())
modCompat.init(event);
}
}
public static void postInit(FMLPostInitializationEvent event)
{
for(ModCompat modCompat : getModCompat())
{
if(modCompat.getIsActive())
modCompat.postInit(event);
}
}
}

View File

@ -0,0 +1,51 @@
package steamcraft.common.compat;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
/**
* Created by Skylar on 9/2/2015.
*/
public abstract class ModCompat
{
boolean isActive = true;
public abstract String getName();
public boolean areRequirementsMet() {
return true;
}
public String dependencies()
{
return "";
}
public void preInit(FMLPreInitializationEvent fmlPreInitializationEvent)
{
}
public void init(FMLInitializationEvent fmlInitializationEvent)
{
}
public void postInit(FMLPostInitializationEvent fmlPostInitializationEvent)
{
}
public void setIsActive(Boolean isActive)
{
this.isActive = isActive;
}
public Boolean getIsActive()
{
return isActive;
}
}

View File

@ -0,0 +1,33 @@
package steamcraft.common.compat.chisel;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import steamcraft.common.compat.ModCompat;
/**
* Created by Skylar on 9/2/2015.
*/
public class ChiselCompat extends ModCompat
{
public ItemSteamChisel itemSteamChisel;
@Override
public String getName()
{
return "Chisel";
}
@Override
public boolean areRequirementsMet()
{
return Loader.isModLoaded("chisel");
}
@Override
public void preInit(FMLPreInitializationEvent event)
{
itemSteamChisel = new ItemSteamChisel();
GameRegistry.registerItem(itemSteamChisel, itemSteamChisel.getUnlocalizedName());
}
}

View File

@ -0,0 +1,122 @@
package steamcraft.common.compat.chisel;
import boilerplate.common.baseclasses.items.BaseSteamItem;
import com.cricketcraft.chisel.api.IChiselItem;
import com.cricketcraft.chisel.api.carving.ICarvingVariation;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
import steamcraft.common.Steamcraft;
import steamcraft.common.lib.ModInfo;
import java.util.List;
/**
* Created by Skylar on 9/2/2015.
*/
@Optional.Interface(iface = "com.cricketcraft.chisel.api.IChiselItem", modid = "chisel")
public class ItemSteamChisel extends BaseSteamItem implements IChiselItem
{
public ItemSteamChisel()
{
super(32000);
this.setCreativeTab(Steamcraft.tabSC2);
this.setUnlocalizedName("itemChiselSteam");
this.setFull3D();
this.setNoRepair();
}
@SideOnly(Side.CLIENT)
@Override
public void registerIcons(IIconRegister par1IconRegister)
{
this.itemIcon = par1IconRegister.registerIcon(ModInfo.PREFIX + "tools/" + this.getUnlocalizedName().substring(5));
}
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void getSubItems(Item item, CreativeTabs creativeTabs, List list) {
list.add(new ItemStack(item, 1));
if(item instanceof IFluidContainerItem)
{
ItemStack itemStack = new ItemStack(item, 1);
IFluidContainerItem iFluidContainerItem = (IFluidContainerItem)item;
iFluidContainerItem.fill(itemStack, FluidRegistry.getFluidStack("steam", iFluidContainerItem.getCapacity(itemStack)), true);
list.add(itemStack);
}
}
@SuppressWarnings("all")
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean flag)
{
if ((this.getFluidAmount(stack) > 0))
{
String str = this.getFluid(stack).getFluid().getName();
int amount = this.getFluidAmount(stack);
list.add("Holding " + amount + "mB of " + str);
}
else
list.add("Empty");
}
@Override
@Optional.Method(modid = "chisel")
public boolean canOpenGui(World world, EntityPlayer player, ItemStack chisel)
{
return getFluidLevel(chisel) > 100;
}
@Override
@Optional.Method(modid = "chisel")
public boolean onChisel(World world, ItemStack chisel, ICarvingVariation target)
{
return consumeSteamFromCanister(chisel, 100);
}
@Override
@Optional.Method(modid = "chisel")
public boolean canChisel(World world, ItemStack chisel, ICarvingVariation target)
{
return getFluidLevel(chisel) > 100;
}
@Override
@Optional.Method(modid = "chisel")
public boolean canChiselBlock(World world, EntityPlayer player, int x, int y, int z, Block block, int metadata)
{
ItemStack currentItem = player.getCurrentEquippedItem();
return getFluidLevel(currentItem) > 100;
}
@Override
@Optional.Method(modid = "chisel")
public boolean hasModes(ItemStack chisel)
{
return false;
}
private int getFluidLevel(ItemStack chisel)
{
if (chisel != null && chisel.getItem() instanceof IFluidContainerItem)
{
FluidStack fluidStack = ((IFluidContainerItem) chisel.getItem()).getFluid(chisel);
return fluidStack != null ? fluidStack.amount : 0;
}
return 0;
}
}

View File

@ -12,95 +12,29 @@
*/
package steamcraft.common.init;
import boilerplate.common.utils.helpers.RegistryHelper;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import boilerplate.common.utils.helpers.RegistryHelper;
import steamcraft.common.Steamcraft;
import steamcraft.common.items.BaseItem;
import steamcraft.common.items.ItemCanister;
import steamcraft.common.items.ItemChisel;
import steamcraft.common.items.ItemCoin;
import steamcraft.common.items.ItemCustomBucket;
import steamcraft.common.items.ItemCustomFood;
import steamcraft.common.items.ItemDimensionalPocket;
import steamcraft.common.items.ItemFieldManipulator;
import steamcraft.common.items.ItemFirearm;
import steamcraft.common.items.ItemGrappleGun;
import steamcraft.common.items.ItemGunPart;
import steamcraft.common.items.ItemHandbook;
import steamcraft.common.items.ItemIngot;
import steamcraft.common.items.ItemLoreBook;
import steamcraft.common.items.ItemMachinePart;
import steamcraft.common.items.ItemMatch;
import steamcraft.common.items.ItemMobBottle;
import steamcraft.common.items.ItemMonsterSpawner;
import steamcraft.common.items.ItemNugget;
import steamcraft.common.items.ItemParts;
import steamcraft.common.items.ItemPowder;
import steamcraft.common.items.ItemResource;
import steamcraft.common.items.ItemRocket;
import steamcraft.common.items.ItemRocketLauncher;
import steamcraft.common.items.ItemSheet;
import steamcraft.common.items.ItemSpanner;
import steamcraft.common.items.ItemSplashLightningBottle;
import steamcraft.common.items.ItemTeaSeed;
import steamcraft.common.items.ItemTeacup;
import steamcraft.common.items.ItemTeapot;
import steamcraft.common.items.ItemTimeClock;
import steamcraft.common.items.ItemVanillaPowder;
import steamcraft.common.items.ItemVanillaSheet;
import steamcraft.common.items.ItemWatch;
import steamcraft.common.items.ItemWithCraftingDurability;
import steamcraft.common.items.armor.ItemBrassArmor;
import steamcraft.common.items.armor.ItemBrassGoggles;
import steamcraft.common.items.armor.ItemClockworkWings;
import steamcraft.common.items.armor.ItemDivingHelmet;
import steamcraft.common.items.armor.ItemMonocle;
import steamcraft.common.items.armor.ItemNormalArmor;
import steamcraft.common.items.armor.ItemSteamJetpack;
import steamcraft.common.items.*;
import steamcraft.common.items.armor.*;
import steamcraft.common.items.compat.ItemSteamcraftCluster;
import steamcraft.common.items.compat.ItemThaumicMonocle;
import steamcraft.common.items.electric.ElectricItem;
import steamcraft.common.items.electric.ItemRayGun;
import steamcraft.common.items.electric.ItemShrinkray;
import steamcraft.common.items.modules.ItemAqualung;
import steamcraft.common.items.modules.ItemAutofeeder;
import steamcraft.common.items.modules.ItemClimbingSpikes;
import steamcraft.common.items.modules.ItemEmergencyTank;
import steamcraft.common.items.modules.ItemFlippers;
import steamcraft.common.items.modules.ItemFreezeBoots;
import steamcraft.common.items.modules.ItemGogglesModule;
import steamcraft.common.items.modules.ItemLastResort;
import steamcraft.common.items.modules.ItemLegBraces;
import steamcraft.common.items.modules.ItemLifeVest;
import steamcraft.common.items.modules.ItemParachute;
import steamcraft.common.items.modules.ItemPistonBoots;
import steamcraft.common.items.modules.ItemReactivePistonPlating;
import steamcraft.common.items.modules.ItemRollerSkates;
import steamcraft.common.items.modules.ItemSpringHeels;
import steamcraft.common.items.modules.ItemSteelPlating;
import steamcraft.common.items.modules.ItemSuperFreezeBoots;
import steamcraft.common.items.modules.ItemWatchDisplay;
import steamcraft.common.items.modules.ItemWingpackModule;
import steamcraft.common.items.modules.*;
import steamcraft.common.items.tools.ItemElectricDrill;
import steamcraft.common.items.tools.ItemElectrifiedSword;
import steamcraft.common.items.tools.steam.ItemSteamAxe;
import steamcraft.common.items.tools.steam.ItemSteamDrill;
import steamcraft.common.items.tools.steam.ItemSteamHoe;
import steamcraft.common.items.tools.steam.ItemSteamPickaxe;
import steamcraft.common.items.tools.steam.ItemSteamShovel;
import steamcraft.common.items.tools.steam.ItemSteamSword;
import steamcraft.common.items.tools.steam.*;
import steamcraft.common.items.vanity.ItemTopHat;
import steamcraft.common.lib.BucketHandler;
import steamcraft.common.lib.ModInfo;

View File

@ -523,6 +523,7 @@ item.itemAutofeeder.desc=Automatically consume food from your inventory. Fairly
item.itemSteamcraftCluster.0.name=Native Aluminum Cluster
item.itemSteamcraftCluster.1.name=Native Zinc Cluster
item.itemThaumicMonocle.name=Thaumic Monocle
item.itemChiselSteam.name=Steam-Powered Chisel
#Tabs
itemGroup.steamcraft2=Steamcraft 2

View File

@ -511,6 +511,7 @@ item.itemFreezeBoots.desc=将你脚下的水冻成冰
item.itemSteamcraftCluster.0.name=Native Aluminum Cluster
item.itemSteamcraftCluster.1.name=Native Zinc Cluster
item.itemThaumicMonocle.name=Thaumic Monocle
item.itemChiselSteam.name=Steam-Powered Chisel
#Tabs
itemGroup.steamcraft=蒸汽工艺 2