Updated coding standard, and enforce it in the entire BuildCraft codebase.

Close #1662.
This commit is contained in:
SpaceToad 2014-05-03 18:59:52 +02:00
parent f4a6d621e3
commit 7b77008d97
483 changed files with 4759 additions and 3456 deletions

View file

@ -9,6 +9,7 @@
package buildcraft.api.blueprints; package buildcraft.api.blueprints;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.api.core.IBox; import buildcraft.api.core.IBox;
import buildcraft.api.core.Position; import buildcraft.api.core.Position;
@ -18,11 +19,11 @@ import buildcraft.api.core.Position;
*/ */
public interface IBuilderContext { public interface IBuilderContext {
public Position rotatePositionLeft(Position pos); Position rotatePositionLeft(Position pos);
public IBox surroundingBox(); IBox surroundingBox();
public World world(); World world();
public MappingRegistry getMappingRegistry (); MappingRegistry getMappingRegistry();
} }

View file

@ -11,7 +11,5 @@ package buildcraft.api.blueprints;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
public interface ITileBuilder extends IInventory { public interface ITileBuilder extends IInventory {
boolean isBuildingMaterialSlot(int i);
public boolean isBuildingMaterialSlot(int i);
} }

View file

@ -16,18 +16,19 @@ import net.minecraft.entity.Entity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
public class MappingRegistry { public class MappingRegistry {
public HashMap <Block, Integer> blockToId = new HashMap<Block, Integer>(); public HashMap<Block, Integer> blockToId = new HashMap<Block, Integer>();
public ArrayList <Block> idToBlock = new ArrayList<Block>(); public ArrayList<Block> idToBlock = new ArrayList<Block>();
public HashMap <Item, Integer> itemToId = new HashMap<Item, Integer>(); public HashMap<Item, Integer> itemToId = new HashMap<Item, Integer>();
public ArrayList <Item> idToItem = new ArrayList<Item>(); public ArrayList<Item> idToItem = new ArrayList<Item>();
public HashMap <Class <? extends Entity>, Integer> entityToId = new HashMap<Class <? extends Entity>, Integer>(); public HashMap<Class<? extends Entity>, Integer> entityToId = new HashMap<Class<? extends Entity>, Integer>();
public ArrayList <Class <? extends Entity>> idToEntity = new ArrayList<Class <? extends Entity>>(); public ArrayList<Class<? extends Entity>> idToEntity = new ArrayList<Class<? extends Entity>>();
private void registerItem (Item item) { private void registerItem (Item item) {
if (!itemToId.containsKey(item)) { if (!itemToId.containsKey(item)) {
@ -43,7 +44,7 @@ public class MappingRegistry {
} }
} }
private void registerEntity (Class <? extends Entity> entityClass) { private void registerEntity(Class<? extends Entity> entityClass) {
if (!entityToId.containsKey(entityClass)) { if (!entityToId.containsKey(entityClass)) {
idToEntity.add(entityClass); idToEntity.add(entityClass);
entityToId.put(entityClass, idToEntity.size() - 1); entityToId.put(entityClass, idToEntity.size() - 1);
@ -82,7 +83,7 @@ public class MappingRegistry {
return blockToId.get(block); return blockToId.get(block);
} }
public Class <? extends Entity> getEntityForId(int id) { public Class<? extends Entity> getEntityForId(int id) {
if (id >= idToEntity.size()) { if (id >= idToEntity.size()) {
return null; return null;
} }
@ -90,7 +91,7 @@ public class MappingRegistry {
return idToEntity.get(id); return idToEntity.get(id);
} }
public int getIdForEntity(Class <? extends Entity> entity) { public int getIdForEntity(Class<? extends Entity> entity) {
if (!entityToId.containsKey(entity)) { if (!entityToId.containsKey(entity)) {
registerEntity (entity); registerEntity (entity);
} }
@ -123,7 +124,7 @@ public class MappingRegistry {
NBTTagList entitiesMapping = new NBTTagList(); NBTTagList entitiesMapping = new NBTTagList();
for (Class <? extends Entity> e : idToEntity) { for (Class<? extends Entity> e : idToEntity) {
NBTTagCompound sub = new NBTTagCompound(); NBTTagCompound sub = new NBTTagCompound();
sub.setString("name", e.getCanonicalName()); sub.setString("name", e.getCanonicalName());
entitiesMapping.appendTag(sub); entitiesMapping.appendTag(sub);
@ -162,7 +163,7 @@ public class MappingRegistry {
Class<? extends Entity> e = null; Class<? extends Entity> e = null;
try { try {
e = (Class <? extends Entity>) Class.forName(name); e = (Class<? extends Entity>) Class.forName(name);
} catch (ClassNotFoundException e1) { } catch (ClassNotFoundException e1) {
e1.printStackTrace(); e1.printStackTrace();
} }
@ -170,18 +171,4 @@ public class MappingRegistry {
registerEntity (e); registerEntity (e);
} }
} }
@Override
public final MappingRegistry clone() {
MappingRegistry result = new MappingRegistry();
result.blockToId = (HashMap<Block, Integer>) blockToId.clone();
result.idToBlock = (ArrayList<Block>) idToBlock.clone();
result.itemToId = (HashMap<Item, Integer>) itemToId.clone();
result.idToItem = (ArrayList<Item>) idToItem.clone();
result.entityToId = (HashMap<Class <? extends Entity>, Integer>) entityToId.clone();
result.idToEntity = (ArrayList<Class <? extends Entity>>) idToEntity.clone();
return result;
}
} }

View file

@ -14,7 +14,9 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import buildcraft.api.core.IInvSlot; import buildcraft.api.core.IInvSlot;
/** /**
@ -177,7 +179,7 @@ public abstract class Schematic {
* Places the block in the world, at the location specified in the slot, * Places the block in the world, at the location specified in the slot,
* using the stack in parameters * using the stack in parameters
*/ */
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
} }

View file

@ -18,6 +18,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import net.minecraftforge.fluids.BlockFluidBase; import net.minecraftforge.fluids.BlockFluidBase;
@ -73,7 +74,7 @@ public class SchematicBlock extends SchematicBlockBase {
* Places the block in the world, at the location specified in the slot. * Places the block in the world, at the location specified in the slot.
*/ */
@Override @Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
// Meta needs to be specified twice, depending on the block behavior // Meta needs to be specified twice, depending on the block behavior
context.world().setBlock(x, y, z, block, meta, 3); context.world().setBlock(x, y, z, block, meta, 3);
context.world().setBlockMetadataWithNotify(x, y, z, meta, 3); context.world().setBlockMetadataWithNotify(x, y, z, meta, 3);

View file

@ -12,13 +12,11 @@ import java.util.HashMap;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
public abstract class SchematicFactory <S extends Schematic> { public abstract class SchematicFactory<S extends Schematic> {
private static final HashMap <String, SchematicFactory> factories = private static final HashMap<String, SchematicFactory> factories = new HashMap<String, SchematicFactory>();
new HashMap <String, SchematicFactory> ();
private static final HashMap <Class <? extends Schematic>, SchematicFactory> schematicToFactory = private static final HashMap<Class<? extends Schematic>, SchematicFactory> schematicToFactory = new HashMap<Class<? extends Schematic>, SchematicFactory>();
new HashMap <Class <? extends Schematic>, SchematicFactory> ();
protected abstract S loadSchematicFromWorldNBT (NBTTagCompound nbt, MappingRegistry registry); protected abstract S loadSchematicFromWorldNBT (NBTTagCompound nbt, MappingRegistry registry);
@ -36,12 +34,12 @@ public abstract class SchematicFactory <S extends Schematic> {
} }
} }
public static void registerSchematicFactory (Class <? extends Schematic> clas, SchematicFactory factory) { public static void registerSchematicFactory(Class<? extends Schematic> clas, SchematicFactory factory) {
schematicToFactory.put(clas, factory); schematicToFactory.put(clas, factory);
factories.put(factory.getClass().getCanonicalName(), factory); factories.put(factory.getClass().getCanonicalName(), factory);
} }
public static SchematicFactory getFactory (Class <? extends Schematic> clas) { public static SchematicFactory getFactory(Class<? extends Schematic> clas) {
Class superClass = clas.getSuperclass(); Class superClass = clas.getSuperclass();
if (schematicToFactory.containsKey(clas)) { if (schematicToFactory.containsKey(clas)) {

View file

@ -13,6 +13,7 @@ import java.util.LinkedList;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import buildcraft.api.core.BuildCraftAPI; import buildcraft.api.core.BuildCraftAPI;
public class SchematicMask extends SchematicBlockBase { public class SchematicMask extends SchematicBlockBase {
@ -28,7 +29,7 @@ public class SchematicMask extends SchematicBlockBase {
} }
@Override @Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
if (isConcrete) { if (isConcrete) {
if (stacks.size() == 0 || !BuildCraftAPI.isSoftBlock(context.world(), x, y, z)) { if (stacks.size() == 0 || !BuildCraftAPI.isSoftBlock(context.world(), x, y, z)) {
return; return;

View file

@ -16,31 +16,38 @@ import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.ITileEntityProvider;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import buildcraft.api.core.JavaTools; import buildcraft.api.core.JavaTools;
public class SchematicRegistry { public final class SchematicRegistry {
public static double BREAK_ENERGY = 10; public static double BREAK_ENERGY = 10;
public static final double BUILD_ENERGY = 20; public static final double BUILD_ENERGY = 20;
private static class SchematicConstructor { private static final HashSet<Block> explicitSchematicBlocks = new HashSet<Block>();
Class <? extends SchematicEntity> clas;
Object [] params;
}
private static final HashSet <Block> explicitSchematicBlocks = new HashSet<Block>(); private static final HashMap<Block, SchematicConstructor> schematicBlocks =
private static final HashMap <Block, SchematicConstructor> schematicBlocks =
new HashMap<Block, SchematicConstructor>(); new HashMap<Block, SchematicConstructor>();
private static final HashMap <Class <? extends Entity>, SchematicConstructor> schematicEntities = private static final HashMap<Class<? extends Entity>, SchematicConstructor> schematicEntities = new HashMap<Class<? extends Entity>, SchematicConstructor>();
new HashMap<Class <? extends Entity>, SchematicConstructor>();
private static final HashSet <String> modsSupporting = new HashSet<String>(); private static final HashSet<String> modsSupporting = new HashSet<String>();
private static final HashSet <String> modsForbidden = new HashSet<String>(); private static final HashSet<String> modsForbidden = new HashSet<String>();
private static final HashSet <String> blocksForbidden = new HashSet<String>(); private static final HashSet<String> blocksForbidden = new HashSet<String>();
/**
* Deactivate constructor
*/
private SchematicRegistry() {
}
private static class SchematicConstructor {
Class<? extends SchematicEntity> clas;
Object [] params;
}
public static void registerSchematicBlock (Block block, Class clas, Object ... params) { public static void registerSchematicBlock (Block block, Class clas, Object ... params) {
explicitSchematicBlocks.add(block); explicitSchematicBlocks.add(block);
@ -99,7 +106,7 @@ public class SchematicRegistry {
return null; return null;
} }
public static SchematicEntity newSchematicEntity (Class <? extends Entity> entityClass) { public static SchematicEntity newSchematicEntity(Class<? extends Entity> entityClass) {
if (!schematicEntities.containsKey(entityClass)) { if (!schematicEntities.containsKey(entityClass)) {
return null; return null;
} }
@ -148,18 +155,18 @@ public class SchematicRegistry {
"blocks that should be excluded from the builder."); "blocks that should be excluded from the builder.");
for (String id : excludedMods.getStringList()) { for (String id : excludedMods.getStringList()) {
id = JavaTools.stripSurroundingQuotes (id.trim()); String strippedId = JavaTools.stripSurroundingQuotes(id.trim());
if (id.length() > 0) { if (strippedId.length() > 0) {
modsForbidden.add(id); modsForbidden.add(strippedId);
} }
} }
for (String id : excludedBlocks.getStringList()) { for (String id : excludedBlocks.getStringList()) {
id = JavaTools.stripSurroundingQuotes (id.trim()); String strippedId = JavaTools.stripSurroundingQuotes(id.trim());
if (id.length() > 0) { if (strippedId.length() > 0) {
blocksForbidden.add(id); blocksForbidden.add(strippedId);
} }
} }
} }

View file

@ -15,6 +15,7 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import buildcraft.api.core.JavaTools; import buildcraft.api.core.JavaTools;
public class SchematicTile extends SchematicBlock { public class SchematicTile extends SchematicBlock {
@ -41,7 +42,7 @@ public class SchematicTile extends SchematicBlock {
* Places the block in the world, at the location specified in the slot. * Places the block in the world, at the location specified in the slot.
*/ */
@Override @Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
super.writeToWorld(context, x, y, z, stacks); super.writeToWorld(context, x, y, z, stacks);
if (block.hasTileEntity(meta)) { if (block.hasTileEntity(meta)) {
@ -80,7 +81,7 @@ public class SchematicTile extends SchematicBlock {
if (tile instanceof IInventory) { if (tile instanceof IInventory) {
IInventory inv = (IInventory) tile; IInventory inv = (IInventory) tile;
ArrayList <ItemStack> rqs = new ArrayList <ItemStack> (); ArrayList<ItemStack> rqs = new ArrayList<ItemStack>();
for (int i = 0; i < inv.getSizeInventory(); ++i) { for (int i = 0; i < inv.getSizeInventory(); ++i) {
if (inv.getStackInSlot(i) != null) { if (inv.getStackInSlot(i) != null) {

View file

@ -1,3 +1,11 @@
@API(apiVersion="1.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|blueprints") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "1.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|blueprints")
package buildcraft.api.blueprints; package buildcraft.api.blueprints;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -12,14 +12,20 @@ import java.lang.reflect.Method;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class BCLog { public final class BCLog {
public static final Logger logger = Logger.getLogger("Buildcraft"); public static final Logger logger = Logger.getLogger("Buildcraft");
/**
* Deactivate constructor
*/
private BCLog() {
}
public static void initLog() { public static void initLog() {
// TODO: check if the code below is still useful and remove otherwise. // TODO: check if the code below is still useful and remove otherwise.
//logger.setParent(FMLLog.getLogger()); //logger.setParent(FMLLog.getLogger());
logger.info("Starting BuildCraft " + getVersion()); logger.info("Starting BuildCraft " + getVersion());
logger.info("Copyright (c) SpaceToad, 2011"); logger.info("Copyright (c) SpaceToad, 2011");
logger.info("http://www.mod-buildcraft.com"); logger.info("http://www.mod-buildcraft.com");
@ -29,8 +35,10 @@ public class BCLog {
StringBuilder msg = new StringBuilder(mod); StringBuilder msg = new StringBuilder(mod);
msg.append(" API error, please update your mods. Error: ").append(error); msg.append(" API error, please update your mods. Error: ").append(error);
StackTraceElement[] stackTrace = error.getStackTrace(); StackTraceElement[] stackTrace = error.getStackTrace();
if (stackTrace.length > 0) if (stackTrace.length > 0) {
msg.append(", ").append(stackTrace[0]); msg.append(", ").append(stackTrace[0]);
}
logger.log(Level.SEVERE, msg.toString()); logger.log(Level.SEVERE, msg.toString());
if (classFile != null) { if (classFile != null) {

View file

@ -14,11 +14,17 @@ import java.util.Set;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
public class BuildCraftAPI { public final class BuildCraftAPI {
public static ICoreProxy proxy; public static ICoreProxy proxy;
public static final Set <Block> softBlocks = new HashSet<Block>(); public static final Set<Block> softBlocks = new HashSet<Block>();
/**
* Deactivate constructor
*/
private BuildCraftAPI() {
}
public static boolean isSoftBlock(IBlockAccess world, int x, int y, int z) { public static boolean isSoftBlock(IBlockAccess world, int x, int y, int z) {
return isSoftBlock(world.getBlock(x, y, z), world, x, y, z); return isSoftBlock(world.getBlock(x, y, z), world, x, y, z);

View file

@ -13,21 +13,21 @@ package buildcraft.api.core;
*/ */
public interface IAreaProvider { public interface IAreaProvider {
public int xMin(); int xMin();
public int yMin(); int yMin();
public int zMin(); int zMin();
public int xMax(); int xMax();
public int yMax(); int yMax();
public int zMax(); int zMax();
/** /**
* Remove from the world all objects used to define the area. * Remove from the world all objects used to define the area.
*/ */
public void removeFromWorld(); void removeFromWorld();
} }

View file

@ -10,16 +10,16 @@ package buildcraft.api.core;
public interface IBox { public interface IBox {
public IBox expand(int amount); IBox expand(int amount);
public IBox contract(int amount); IBox contract(int amount);
public boolean contains(double x, double y, double z); boolean contains(double x, double y, double z);
public Position pMin(); Position pMin();
public Position pMax(); Position pMax();
public void createLaserData(); void createLaserData();
} }

View file

@ -12,5 +12,5 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World; import net.minecraft.world.World;
public interface ICoreProxy { public interface ICoreProxy {
public EntityPlayer getBuildCraftPlayer(World world); EntityPlayer getBuildCraftPlayer(World world);
} }

View file

@ -8,25 +8,26 @@
*/ */
package buildcraft.api.core; package buildcraft.api.core;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public interface IIconProvider { public interface IIconProvider {
/** /**
* @param iconIndex * @param iconIndex
* @return * @return
*/ */
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public IIcon getIcon(int iconIndex); IIcon getIcon(int iconIndex);
/** /**
* A call for the provider to register its Icons. This may be called multiple times but should only be executed once per provider * A call for the provider to register its Icons. This may be called multiple times but should only be executed once per provider
* @param iconRegister * @param iconRegister
*/ */
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister); void registerIcons(IIconRegister iconRegister);
} }

View file

@ -1,3 +1,11 @@
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.api.core; package buildcraft.api.core;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -35,16 +35,16 @@ public class JavaTools {
return result; return result;
} }
public <T> T[] concatenate (T[] A, T[] B) { public <T> T[] concatenate (T[] a, T[] b) {
int aLen = A.length; int aLen = a.length;
int bLen = B.length; int bLen = b.length;
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
T[] C = (T[]) Array.newInstance(A.getClass().getComponentType(), aLen+bLen); T[] c = (T[]) Array.newInstance(a.getClass().getComponentType(), aLen + bLen);
System.arraycopy(A, 0, C, 0, aLen); System.arraycopy(a, 0, c, 0, aLen);
System.arraycopy(B, 0, C, aLen, bLen); System.arraycopy(b, 0, c, aLen, bLen);
return C; return c;
} }
public static List<Field> getAllFields(Class clas) { public static List<Field> getAllFields(Class clas) {
@ -79,7 +79,7 @@ public class JavaTools {
return result; return result;
} }
public static String surroundWithQuotes(String stringToSurroundWithQuotes){ public static String surroundWithQuotes(String stringToSurroundWithQuotes) {
return String.format("\"%s\"", stringToSurroundWithQuotes); return String.format("\"%s\"", stringToSurroundWithQuotes);
} }

View file

@ -10,6 +10,7 @@ package buildcraft.api.core;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class Position { public class Position {
@ -159,11 +160,7 @@ public class Position {
double sqrDis = dx * dx + dy * dy + dz * dz; double sqrDis = dx * dx + dy * dy + dz * dz;
if (sqrDis > f * f) { return !(sqrDis > f * f);
return false;
} else {
return true;
}
} }
} }

View file

@ -55,8 +55,9 @@ public class SafeTimeTracker {
* this function without a parameter * this function without a parameter
*/ */
public boolean markTimeIfDelay(World world, long delay) { public boolean markTimeIfDelay(World world, long delay) {
if (world == null) if (world == null) {
return false; return false;
}
long currentTime = world.getTotalWorldTime(); long currentTime = world.getTotalWorldTime();

View file

@ -49,10 +49,8 @@ public class StackKey {
return false; return false;
} else if (stack.getHasSubtypes() && stack.getItemDamage() != other.stack.getItemDamage()) { } else if (stack.getHasSubtypes() && stack.getItemDamage() != other.stack.getItemDamage()) {
return false; return false;
} else if (stack.stackTagCompound != null && !stack.stackTagCompound.equals(other.stack.stackTagCompound)) {
return false;
} else { } else {
return true; return !(stack.stackTagCompound != null && !stack.stackTagCompound.equals(other.stack.stackTagCompound));
} }
} }
} }

View file

@ -1,3 +1,11 @@
@API(apiVersion="1.0",owner="BuildCraft|Core",provides="BuildCraftAPI|core") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "1.0", owner = "BuildCraft|Core", provides = "BuildCraftAPI|core")
package buildcraft.api.core; package buildcraft.api.core;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -8,8 +8,13 @@
*/ */
package buildcraft.api.filler; package buildcraft.api.filler;
public class FillerManager { public final class FillerManager {
public static IFillerRegistry registry; public static IFillerRegistry registry;
/**
* Deactivate constructor
*/
private FillerManager() {
}
} }

View file

@ -9,15 +9,16 @@
package buildcraft.api.filler; package buildcraft.api.filler;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
public interface IFillerPattern { public interface IFillerPattern {
public String getUniqueTag(); String getUniqueTag();
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public IIcon getIcon(); IIcon getIcon();
public String getDisplayName(); String getDisplayName();
} }

View file

@ -8,18 +8,19 @@
*/ */
package buildcraft.api.filler; package buildcraft.api.filler;
import buildcraft.api.gates.IAction;
import java.util.Set; import java.util.Set;
import buildcraft.api.gates.IAction;
public interface IFillerRegistry { public interface IFillerRegistry {
public void addPattern(IFillerPattern pattern); void addPattern(IFillerPattern pattern);
public IFillerPattern getPattern(String patternName); IFillerPattern getPattern(String patternName);
public IFillerPattern getNextPattern(IFillerPattern currentPattern); IFillerPattern getNextPattern(IFillerPattern currentPattern);
public IFillerPattern getPreviousPattern(IFillerPattern currentPattern); IFillerPattern getPreviousPattern(IFillerPattern currentPattern);
public Set<? extends IAction> getActions(); Set<? extends IAction> getActions();
} }

View file

@ -1,16 +0,0 @@
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.api.filler;
import net.minecraft.item.ItemStack;
public interface IPatternIterator {
public boolean iteratePattern(ItemStack stackToPlace);
}

View file

@ -1,3 +1,11 @@
@API(apiVersion="2.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|filler") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "2.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|filler")
package buildcraft.api.filler; package buildcraft.api.filler;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -8,22 +8,26 @@
*/ */
package buildcraft.api.fuels; package buildcraft.api.fuels;
import buildcraft.api.core.StackKey;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import buildcraft.api.core.StackKey;
public final class IronEngineCoolant { public final class IronEngineCoolant {
public static Map<String, Coolant> liquidCoolants = new HashMap<String, Coolant>(); public static Map<String, Coolant> liquidCoolants = new HashMap<String, Coolant>();
public static Map<StackKey, FluidStack> solidCoolants = new HashMap<StackKey, FluidStack>(); public static Map<StackKey, FluidStack> solidCoolants = new HashMap<StackKey, FluidStack>();
private IronEngineCoolant() {
}
public static FluidStack getFluidCoolant(ItemStack stack) { public static FluidStack getFluidCoolant(ItemStack stack) {
return solidCoolants.get(new StackKey(stack)); return solidCoolants.get(new StackKey(stack));
} }
@ -36,10 +40,7 @@ public final class IronEngineCoolant {
return fluidStack != null && fluidStack.getFluid() != null ? liquidCoolants.get(fluidStack.getFluid().getName()) : null; return fluidStack != null && fluidStack.getFluid() != null ? liquidCoolants.get(fluidStack.getFluid().getName()) : null;
} }
private IronEngineCoolant() { public interface Coolant {
}
public static interface Coolant {
float getDegreesCoolingPerMB(float currentHeat); float getDegreesCoolingPerMB(float currentHeat);
} }
@ -80,7 +81,7 @@ public final class IronEngineCoolant {
public static void addCoolant(final Item item, final int metadata, final FluidStack coolant) { public static void addCoolant(final Item item, final int metadata, final FluidStack coolant) {
addCoolant(new ItemStack(item, 1, metadata), coolant); addCoolant(new ItemStack(item, 1, metadata), coolant);
} }
public static void addCoolant(final Block block, final int metadata, final FluidStack coolant) { public static void addCoolant(final Block block, final int metadata, final FluidStack coolant) {
addCoolant(new ItemStack(block, 1, metadata), coolant); addCoolant(new ItemStack(block, 1, metadata), coolant);
} }

View file

@ -10,21 +10,22 @@ package buildcraft.api.fuels;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidRegistry;
public class IronEngineFuel { public final class IronEngineFuel {
public static Map<String, Fuel> fuels = new HashMap<String, Fuel>(); public static Map<String, Fuel> fuels = new HashMap<String, Fuel>();
private IronEngineFuel() {
}
public static Fuel getFuelForFluid(Fluid liquid) { public static Fuel getFuelForFluid(Fluid liquid) {
return liquid == null ? null : fuels.get(liquid.getName()); return liquid == null ? null : fuels.get(liquid.getName());
} }
private IronEngineFuel() { public static final class Fuel {
}
public static class Fuel {
public final Fluid liquid; public final Fluid liquid;
public final float powerPerCycle; public final float powerPerCycle;

View file

@ -1,3 +1,11 @@
@API(apiVersion="1.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|fuels") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "1.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|fuels")
package buildcraft.api.fuels; package buildcraft.api.fuels;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -8,21 +8,29 @@
*/ */
package buildcraft.api.gates; package buildcraft.api.gates;
import buildcraft.api.transport.IPipeTile;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
public class ActionManager { import buildcraft.api.transport.IPipeTile;
public final class ActionManager {
public static Map<String, ITrigger> triggers = new HashMap<String, ITrigger>(); public static Map<String, ITrigger> triggers = new HashMap<String, ITrigger>();
public static Map<String, IAction> actions = new HashMap<String, IAction>(); public static Map<String, IAction> actions = new HashMap<String, IAction>();
private static List<ITriggerProvider> triggerProviders = new LinkedList<ITriggerProvider>(); private static List<ITriggerProvider> triggerProviders = new LinkedList<ITriggerProvider>();
private static List<IActionProvider> actionProviders = new LinkedList<IActionProvider>(); private static List<IActionProvider> actionProviders = new LinkedList<IActionProvider>();
/**
* Deactivate constructor
*/
private ActionManager() {
}
public static void registerTriggerProvider(ITriggerProvider provider) { public static void registerTriggerProvider(ITriggerProvider provider) {
if (provider != null && !triggerProviders.contains(provider)) { if (provider != null && !triggerProviders.contains(provider)) {
triggerProviders.add(provider); triggerProviders.add(provider);
@ -38,21 +46,21 @@ public class ActionManager {
} }
public static List<ITrigger> getNeighborTriggers(Block block, TileEntity entity) { public static List<ITrigger> getNeighborTriggers(Block block, TileEntity entity) {
List<ITrigger> triggers = new LinkedList<ITrigger>(); List<ITrigger> result = new LinkedList<ITrigger>();
for (ITriggerProvider provider : triggerProviders) { for (ITriggerProvider provider : triggerProviders) {
List<ITrigger> toAdd = provider.getNeighborTriggers(block, entity); List<ITrigger> toAdd = provider.getNeighborTriggers(block, entity);
if (toAdd != null) { if (toAdd != null) {
for (ITrigger t : toAdd) { for (ITrigger t : toAdd) {
if (!triggers.contains(t)) { if (!result.contains(t)) {
triggers.add(t); result.add(t);
} }
} }
} }
} }
return triggers; return result;
} }
public static void registerActionProvider(IActionProvider provider) { public static void registerActionProvider(IActionProvider provider) {
@ -62,38 +70,38 @@ public class ActionManager {
} }
public static List<IAction> getNeighborActions(Block block, TileEntity entity) { public static List<IAction> getNeighborActions(Block block, TileEntity entity) {
List<IAction> actions = new LinkedList<IAction>(); List<IAction> result = new LinkedList<IAction>();
for (IActionProvider provider : actionProviders) { for (IActionProvider provider : actionProviders) {
List<IAction> toAdd = provider.getNeighborActions(block, entity); List<IAction> toAdd = provider.getNeighborActions(block, entity);
if (toAdd != null) { if (toAdd != null) {
for (IAction t : toAdd) { for (IAction t : toAdd) {
if (!actions.contains(t)) { if (!result.contains(t)) {
actions.add(t); result.add(t);
} }
} }
} }
} }
return actions; return result;
} }
public static List<ITrigger> getPipeTriggers(IPipeTile pipe) { public static List<ITrigger> getPipeTriggers(IPipeTile pipe) {
List<ITrigger> triggers = new LinkedList<ITrigger>(); List<ITrigger> result = new LinkedList<ITrigger>();
for (ITriggerProvider provider : triggerProviders) { for (ITriggerProvider provider : triggerProviders) {
List<ITrigger> toAdd = provider.getPipeTriggers(pipe); List<ITrigger> toAdd = provider.getPipeTriggers(pipe);
if (toAdd != null) { if (toAdd != null) {
for (ITrigger t : toAdd) { for (ITrigger t : toAdd) {
if (!triggers.contains(t)) { if (!result.contains(t)) {
triggers.add(t); result.add(t);
} }
} }
} }
} }
return triggers; return result;
} }
} }

View file

@ -8,13 +8,14 @@
*/ */
package buildcraft.api.gates; package buildcraft.api.gates;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
public final class GateExpansions { public final class GateExpansions {
private static final Map<String, IGateExpansion> expansions = new HashMap<String, IGateExpansion>(); private static final Map<String, IGateExpansion> expansions = new HashMap<String, IGateExpansion>();
@ -39,9 +40,11 @@ public final class GateExpansions {
} }
public static IGateExpansion getExpansionClient(int id) { public static IGateExpansion getExpansionClient(int id) {
if (id < 0 || id >= 128) if (id < 0 || id >= 128) {
return null; return null;
return expansions.get(clientIDMap.get((byte) id)); } else {
return expansions.get(clientIDMap.get((byte) id));
}
} }
public static byte getServerExpansionID(String identifier) { public static byte getServerExpansionID(String identifier) {

View file

@ -9,6 +9,7 @@
package buildcraft.api.gates; package buildcraft.api.gates;
import java.util.LinkedList; import java.util.LinkedList;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -17,6 +18,5 @@ public interface IActionProvider {
/** /**
* Returns the list of actions available to a gate next to the given block. * Returns the list of actions available to a gate next to the given block.
*/ */
public abstract LinkedList<IAction> getNeighborActions(Block block, TileEntity tile); LinkedList<IAction> getNeighborActions(Block block, TileEntity tile);
} }

View file

@ -9,7 +9,5 @@
package buildcraft.api.gates; package buildcraft.api.gates;
public interface IActionReceptor { public interface IActionReceptor {
void actionActivated(IAction action);
public void actionActivated(IAction action);
} }

View file

@ -13,15 +13,15 @@ import net.minecraft.nbt.NBTTagCompound;
public interface ITriggerParameter { public interface ITriggerParameter {
public abstract ItemStack getItemStack(); ItemStack getItemStack();
public abstract void set(ItemStack stack); void set(ItemStack stack);
public abstract void writeToNBT(NBTTagCompound compound); void writeToNBT(NBTTagCompound compound);
public abstract void readFromNBT(NBTTagCompound compound); void readFromNBT(NBTTagCompound compound);
@Deprecated @Deprecated
public abstract ItemStack getItem(); ItemStack getItem();
} }

View file

@ -8,21 +8,23 @@
*/ */
package buildcraft.api.gates; package buildcraft.api.gates;
import buildcraft.api.transport.IPipeTile;
import java.util.LinkedList; import java.util.LinkedList;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import buildcraft.api.transport.IPipeTile;
public interface ITriggerProvider { public interface ITriggerProvider {
/** /**
* Returns the list of triggers that are available from the pipe holding the gate. * Returns the list of triggers that are available from the pipe holding the gate.
*/ */
public abstract LinkedList<ITrigger> getPipeTriggers(IPipeTile pipe); LinkedList<ITrigger> getPipeTriggers(IPipeTile pipe);
/** /**
* Returns the list of triggers available to a gate next to the given block. * Returns the list of triggers available to a gate next to the given block.
*/ */
public abstract LinkedList<ITrigger> getNeighborTriggers(Block block, TileEntity tile); LinkedList<ITrigger> getNeighborTriggers(Block block, TileEntity tile);
} }

View file

@ -1,3 +1,12 @@
@API(apiVersion="2.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|gates") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "2.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|gates")
package buildcraft.api.gates; package buildcraft.api.gates;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -14,7 +14,9 @@ import java.util.Map;
import buildcraft.api.core.JavaTools; import buildcraft.api.core.JavaTools;
public class MjAPI { public final class MjAPI {
static Map<Class, BatteryField> MjBatteries = new HashMap<Class, BatteryField>();
private enum BatteryKind { private enum BatteryKind {
Value, Container Value, Container
@ -103,6 +105,12 @@ public class MjAPI {
} }
} }
/**
* Deactivate constructor
*/
private MjAPI() {
}
public static BatteryObject getMjBattery (Object o) { public static BatteryObject getMjBattery (Object o) {
if (o == null) { if (o == null) {
return null; return null;
@ -131,8 +139,6 @@ public class MjAPI {
} }
} }
static Map <Class, BatteryField> MjBatteries = new HashMap <Class, BatteryField> ();
private static BatteryField getMjBattery (Class c) { private static BatteryField getMjBattery (Class c) {
if (!MjBatteries.containsKey(c)) { if (!MjBatteries.containsKey(c)) {
for (Field f : JavaTools.getAllFields(c)) { for (Field f : JavaTools.getAllFields(c)) {
@ -144,7 +150,7 @@ public class MjAPI {
bField.field = f; bField.field = f;
bField.battery = battery; bField.battery = battery;
if (f.getType().equals(double.class)) { if (double.class.equals(f.getType())) {
bField.kind = BatteryKind.Value; bField.kind = BatteryKind.Value;
} else if (f.getType().isPrimitive()) { } else if (f.getType().isPrimitive()) {
throw new RuntimeException( throw new RuntimeException(

View file

@ -35,8 +35,10 @@ import java.lang.annotation.Target;
@Inherited @Inherited
public @interface MjBattery { public @interface MjBattery {
public double maxCapacity () default 100.0; double maxCapacity() default 100.0;
public double maxReceivedPerCycle () default 10.0;
public double minimumConsumption () default 0.1; double maxReceivedPerCycle() default 10.0;
double minimumConsumption() default 0.1;
} }

View file

@ -1,3 +1,11 @@
@API(apiVersion="1.0",owner="BuildCraft|Core",provides="BuildCraftAPI|core") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "1.0", owner = "BuildCraft|Core", provides = "BuildCraftAPI|core")
package buildcraft.api; package buildcraft.api;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -17,6 +17,5 @@ import net.minecraftforge.common.util.ForgeDirection;
* from a specific side. * from a specific side.
*/ */
public interface IPowerEmitter { public interface IPowerEmitter {
boolean canEmitPowerFrom(ForgeDirection side);
public boolean canEmitPowerFrom(ForgeDirection side);
} }

View file

@ -9,6 +9,7 @@
package buildcraft.api.power; package buildcraft.api.power;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
/** /**
@ -29,7 +30,7 @@ public interface IPowerReceptor {
* @param side * @param side
* @return * @return
*/ */
public PowerHandler.PowerReceiver getPowerReceiver(ForgeDirection side); PowerHandler.PowerReceiver getPowerReceiver(ForgeDirection side);
/** /**
* Call back from the PowerHandler that is called when the stored power * Call back from the PowerHandler that is called when the stored power
@ -39,7 +40,7 @@ public interface IPowerReceptor {
* *
* @param workProvider * @param workProvider
*/ */
public void doWork(PowerHandler workProvider); void doWork(PowerHandler workProvider);
public World getWorld(); World getWorld();
} }

View file

@ -9,7 +9,9 @@
package buildcraft.api.power; package buildcraft.api.power;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.core.SafeTimeTracker;
/** /**
@ -77,9 +79,10 @@ public final class PowerHandler {
*/ */
public PerditionCalculator(double powerLoss) { public PerditionCalculator(double powerLoss) {
if (powerLoss < MIN_POWERLOSS) { if (powerLoss < MIN_POWERLOSS) {
powerLoss = MIN_POWERLOSS; this.powerLoss = MIN_POWERLOSS;
} else {
this.powerLoss = powerLoss;
} }
this.powerLoss = powerLoss;
} }
/** /**
@ -93,11 +96,13 @@ public final class PowerHandler {
* @return * @return
*/ */
public double applyPerdition(PowerHandler powerHandler, double current, long ticksPassed) { public double applyPerdition(PowerHandler powerHandler, double current, long ticksPassed) {
current -= powerLoss * ticksPassed; double newPower = current - powerLoss * ticksPassed;
if (current < 0) {
current = 0; if (newPower < 0) {
newPower = 0;
} }
return current;
return newPower;
} }
/** /**
@ -115,6 +120,9 @@ public final class PowerHandler {
public static final double ROLLING_AVERAGE_WEIGHT = 100.0; public static final double ROLLING_AVERAGE_WEIGHT = 100.0;
public static final double ROLLING_AVERAGE_NUMERATOR = ROLLING_AVERAGE_WEIGHT - 1; public static final double ROLLING_AVERAGE_NUMERATOR = ROLLING_AVERAGE_WEIGHT - 1;
public static final double ROLLING_AVERAGE_DENOMINATOR = 1.0 / ROLLING_AVERAGE_WEIGHT; public static final double ROLLING_AVERAGE_DENOMINATOR = 1.0 / ROLLING_AVERAGE_WEIGHT;
public final int[] powerSources = new int[6];
public final IPowerReceptor receptor;
private double minEnergyReceived; private double minEnergyReceived;
private double maxEnergyReceived; private double maxEnergyReceived;
private double maxEnergyStored; private double maxEnergyStored;
@ -123,8 +131,6 @@ public final class PowerHandler {
private final SafeTimeTracker doWorkTracker = new SafeTimeTracker(); private final SafeTimeTracker doWorkTracker = new SafeTimeTracker();
private final SafeTimeTracker sourcesTracker = new SafeTimeTracker(); private final SafeTimeTracker sourcesTracker = new SafeTimeTracker();
private final SafeTimeTracker perditionTracker = new SafeTimeTracker(); private final SafeTimeTracker perditionTracker = new SafeTimeTracker();
public final int[] powerSources = new int[6];
public final IPowerReceptor receptor;
private PerditionCalculator perdition; private PerditionCalculator perdition;
private final PowerReceiver receiver; private final PowerReceiver receiver;
private final Type type; private final Type type;
@ -182,12 +188,15 @@ public final class PowerHandler {
* store. Values tend to range between 100 and 5000. With 1000 and 1500 * store. Values tend to range between 100 and 5000. With 1000 and 1500
* being common. * being common.
*/ */
public void configure(double minEnergyReceived, double maxEnergyReceived, double activationEnergy, double maxStoredEnergy) { public void configure(double minEnergyReceived, double maxEnergyReceivedI, double activationEnergy,
if (minEnergyReceived > maxEnergyReceived) { double maxStoredEnergy) {
maxEnergyReceived = minEnergyReceived; double localMaxEnergyReceived = maxEnergyReceivedI;
if (minEnergyReceived > localMaxEnergyReceived) {
localMaxEnergyReceived = minEnergyReceived;
} }
this.minEnergyReceived = minEnergyReceived; this.minEnergyReceived = minEnergyReceived;
this.maxEnergyReceived = maxEnergyReceived; this.maxEnergyReceived = localMaxEnergyReceived;
this.maxEnergyStored = maxStoredEnergy; this.maxEnergyStored = maxStoredEnergy;
this.activationEnergy = activationEnergy; this.activationEnergy = activationEnergy;
} }
@ -221,16 +230,18 @@ public final class PowerHandler {
*/ */
public void setPerdition(PerditionCalculator perdition) { public void setPerdition(PerditionCalculator perdition) {
if (perdition == null) { if (perdition == null) {
perdition = DEFAULT_PERDITION; this.perdition = DEFAULT_PERDITION;
} else {
this.perdition = perdition;
} }
this.perdition = perdition;
} }
public PerditionCalculator getPerdition() { public PerditionCalculator getPerdition() {
if (perdition == null) { if (perdition == null) {
return DEFAULT_PERDITION; return DEFAULT_PERDITION;
} else {
return perdition;
} }
return perdition;
} }
/** /**
@ -438,7 +449,9 @@ public final class PowerHandler {
* *
* @return the amount the power changed by * @return the amount the power changed by
*/ */
public double addEnergy(double quantity) { public double addEnergy(double quantityI) {
double quantity = quantityI;
energyStored += quantity; energyStored += quantity;
if (energyStored > maxEnergyStored) { if (energyStored > maxEnergyStored) {

View file

@ -1,3 +1,11 @@
@API(apiVersion="1.1",owner="BuildCraftAPI|core",provides="BuildCraftAPI|power") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "1.1", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|power")
package buildcraft.api.power; package buildcraft.api.power;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -9,11 +9,12 @@
package buildcraft.api.recipes; package buildcraft.api.recipes;
import java.util.List; import java.util.List;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public interface IAssemblyRecipeManager { public interface IAssemblyRecipeManager {
public static interface IAssemblyRecipe { public interface IAssemblyRecipe {
ItemStack getOutput(); ItemStack getOutput();

View file

@ -8,10 +8,10 @@
*/ */
package buildcraft.api.recipes; package buildcraft.api.recipes;
import net.minecraft.item.ItemStack;
import java.util.List; import java.util.List;
import net.minecraft.item.ItemStack;
/** /**
* The Integration Table's primary purpose is to modify an input item's NBT * The Integration Table's primary purpose is to modify an input item's NBT
* data. As such its not a "traditional" type of recipe. Rather than predefined * data. As such its not a "traditional" type of recipe. Rather than predefined
@ -19,7 +19,7 @@ import java.util.List;
*/ */
public interface IIntegrationRecipeManager { public interface IIntegrationRecipeManager {
public static interface IIntegrationRecipe { public interface IIntegrationRecipe {
double getEnergyCost(); double getEnergyCost();

View file

@ -9,6 +9,7 @@
package buildcraft.api.recipes; package buildcraft.api.recipes;
import java.util.SortedSet; import java.util.SortedSet;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
public interface IRefineryRecipeManager { public interface IRefineryRecipeManager {
@ -21,7 +22,7 @@ public interface IRefineryRecipeManager {
IRefineryRecipe findRefineryRecipe(FluidStack ingredient1, FluidStack ingredient2); IRefineryRecipe findRefineryRecipe(FluidStack ingredient1, FluidStack ingredient2);
public static interface IRefineryRecipe { public interface IRefineryRecipe {
FluidStack getIngredient1(); FluidStack getIngredient1();

View file

@ -1,3 +1,12 @@
@API(apiVersion="2.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|recipes") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "2.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|recipes")
package buildcraft.api.recipes; package buildcraft.api.recipes;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -17,24 +17,24 @@ public interface IToolWrench {
/*** /***
* Called to ensure that the wrench can be used. To get the ItemStack that is used, check player.inventory.getCurrentItem() * Called to ensure that the wrench can be used. To get the ItemStack that is used, check player.inventory.getCurrentItem()
* *
* @param player * @param player
* - The player doing the wrenching * - The player doing the wrenching
* @param x * @param x
* ,y,z - The coordinates for the block being wrenched * ,y,z - The coordinates for the block being wrenched
* *
* @return true if wrenching is allowed, false if not * @return true if wrenching is allowed, false if not
*/ */
public boolean canWrench(EntityPlayer player, int x, int y, int z); boolean canWrench(EntityPlayer player, int x, int y, int z);
/*** /***
* Callback after the wrench has been used. This can be used to decrease durability or for other purposes. To get the ItemStack that was used, check * Callback after the wrench has been used. This can be used to decrease durability or for other purposes. To get the ItemStack that was used, check
* player.inventory.getCurrentItem() * player.inventory.getCurrentItem()
* *
* @param player * @param player
* - The player doing the wrenching * - The player doing the wrenching
* @param x * @param x
* ,y,z - The coordinates of the block being wrenched * ,y,z - The coordinates of the block being wrenched
*/ */
public void wrenchUsed(EntityPlayer player, int x, int y, int z); void wrenchUsed(EntityPlayer player, int x, int y, int z);
} }

View file

@ -1,3 +1,11 @@
@API(apiVersion="1.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|tools") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "1.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|tools")
package buildcraft.api.tools; package buildcraft.api.tools;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -8,9 +8,10 @@
*/ */
package buildcraft.api.transport; package buildcraft.api.transport;
import buildcraft.api.transport.IPipeTile.PipeType;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.api.transport.IPipeTile.PipeType;
public interface IPipeConnection { public interface IPipeConnection {
enum ConnectOverride { enum ConnectOverride {
@ -26,5 +27,5 @@ public interface IPipeConnection {
* @return CONNECT to force a connection, DISCONNECT to force no connection, * @return CONNECT to force a connection, DISCONNECT to force no connection,
* and DEFAULT to let the pipe decide. * and DEFAULT to let the pipe decide.
*/ */
public ConnectOverride overridePipeConnection(PipeType type, ForgeDirection with); ConnectOverride overridePipeConnection(PipeType type, ForgeDirection with);
} }

View file

@ -10,6 +10,7 @@ package buildcraft.api.transport;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import net.minecraft.world.World; import net.minecraft.world.World;
public abstract class PipeManager { public abstract class PipeManager {
@ -24,20 +25,24 @@ public abstract class PipeManager {
* param extractor can be null * param extractor can be null
*/ */
public static boolean canExtractItems(Object extractor, World world, int i, int j, int k) { public static boolean canExtractItems(Object extractor, World world, int i, int j, int k) {
for (IExtractionHandler handler : extractionHandlers) for (IExtractionHandler handler : extractionHandlers) {
if (!handler.canExtractItems(extractor, world, i, j, k)) if (!handler.canExtractItems(extractor, world, i, j, k)) {
return false; return false;
}
}
return true; return true;
} }
/** /**
* param extractor can be null * param extractor can be null
*/ */
public static boolean canExtractFluids(Object extractor, World world, int i, int j, int k) { public static boolean canExtractFluids(Object extractor, World world, int i, int j, int k) {
for (IExtractionHandler handler : extractionHandlers) for (IExtractionHandler handler : extractionHandlers) {
if (!handler.canExtractFluids(extractor, world, i, j, k)) if (!handler.canExtractFluids(extractor, world, i, j, k)) {
return false; return false;
}
}
return true; return true;
} }

View file

@ -8,11 +8,11 @@
*/ */
package buildcraft.api.transport; package buildcraft.api.transport;
import java.util.Locale;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import java.util.Locale;
public enum PipeWire { public enum PipeWire {
RED, BLUE, GREEN, YELLOW; RED, BLUE, GREEN, YELLOW;
@ -47,22 +47,28 @@ public enum PipeWire {
} }
public ItemStack getStack(int qty) { public ItemStack getStack(int qty) {
if (item == null) if (item == null) {
return null; return null;
return new ItemStack(item, qty, ordinal()); } else {
return new ItemStack(item, qty, ordinal());
}
} }
public boolean isPipeWire(ItemStack stack) { public boolean isPipeWire(ItemStack stack) {
if (stack == null) if (stack == null) {
return false; return false;
if (stack.getItem() != item) } else if (stack.getItem() != item) {
return false; return false;
return stack.getItemDamage() == ordinal(); } else {
return stack.getItemDamage() == ordinal();
}
} }
public static PipeWire fromOrdinal(int ordinal) { public static PipeWire fromOrdinal(int ordinal) {
if (ordinal < 0 || ordinal >= VALUES.length) if (ordinal < 0 || ordinal >= VALUES.length) {
return RED; return RED;
return VALUES[ordinal]; } else {
return VALUES[ordinal];
}
} }
} }

View file

@ -1,3 +1,12 @@
@API(apiVersion="2.0",owner="BuildCraftAPI|core",provides="BuildCraftAPI|transport") /**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
@API(apiVersion = "2.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|transport")
package buildcraft.api.transport; package buildcraft.api.transport;
import cpw.mods.fml.common.API; import cpw.mods.fml.common.API;

View file

@ -20,10 +20,23 @@ import net.minecraft.entity.item.EntityPainting;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import buildcraft.api.blueprints.BlueprintDeployer; import buildcraft.api.blueprints.BlueprintDeployer;
import buildcraft.api.blueprints.SchematicBlock; import buildcraft.api.blueprints.SchematicBlock;
import buildcraft.api.blueprints.SchematicEntity; import buildcraft.api.blueprints.SchematicEntity;
@ -108,16 +121,6 @@ import buildcraft.core.InterModComms;
import buildcraft.core.Version; import buildcraft.core.Version;
import buildcraft.core.blueprints.RealBlueprintDeployer; import buildcraft.core.blueprints.RealBlueprintDeployer;
import buildcraft.core.proxy.CoreProxy; import buildcraft.core.proxy.CoreProxy;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@Mod(name = "BuildCraft Builders", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Builders", dependencies = DefaultProps.DEPENDENCY_CORE) @Mod(name = "BuildCraft Builders", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Builders", dependencies = DefaultProps.DEPENDENCY_CORE)
public class BuildCraftBuilders extends BuildCraftMod { public class BuildCraftBuilders extends BuildCraftMod {
@ -445,7 +448,7 @@ public class BuildCraftBuilders extends BuildCraftMod {
} }
@Mod.EventHandler @Mod.EventHandler
public void ServerStop(FMLServerStoppingEvent event) { public void serverStop(FMLServerStoppingEvent event) {
TilePathMarker.clearAvailableMarkersList(); TilePathMarker.clearAvailableMarkersList();
} }

View file

@ -14,6 +14,10 @@ import java.nio.FloatBuffer;
import java.nio.IntBuffer; import java.nio.IntBuffer;
import java.util.TreeMap; import java.util.TreeMap;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockLiquid; import net.minecraft.block.BlockLiquid;
import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.GLAllocation;
@ -24,6 +28,20 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement; import net.minecraft.stats.Achievement;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
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.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.AchievementPage;
@ -34,10 +52,6 @@ import net.minecraftforge.common.config.Property;
import net.minecraftforge.fluids.BlockFluidBase; import net.minecraftforge.fluids.BlockFluidBase;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
import buildcraft.api.blueprints.SchematicRegistry; import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.api.core.BCLog; import buildcraft.api.core.BCLog;
import buildcraft.api.core.BuildCraftAPI; import buildcraft.api.core.BuildCraftAPI;
@ -50,7 +64,6 @@ import buildcraft.core.BlockSpring;
import buildcraft.core.BuildCraftConfiguration; import buildcraft.core.BuildCraftConfiguration;
import buildcraft.core.CommandBuildCraft; import buildcraft.core.CommandBuildCraft;
import buildcraft.core.CoreIconProvider; import buildcraft.core.CoreIconProvider;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.DefaultProps; import buildcraft.core.DefaultProps;
import buildcraft.core.InterModComms; import buildcraft.core.InterModComms;
import buildcraft.core.ItemBuildCraft; import buildcraft.core.ItemBuildCraft;
@ -86,18 +99,6 @@ import buildcraft.core.triggers.TriggerInventoryLevel;
import buildcraft.core.triggers.TriggerMachine; import buildcraft.core.triggers.TriggerMachine;
import buildcraft.core.triggers.TriggerRedstoneInput; import buildcraft.core.triggers.TriggerRedstoneInput;
import buildcraft.core.utils.CraftingHandler; import buildcraft.core.utils.CraftingHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
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.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@Mod(name = "BuildCraft", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Core", acceptedMinecraftVersions = "[1.7.2,1.8)", dependencies = "required-after:Forge@[10.12.0.1024,)") @Mod(name = "BuildCraft", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Core", acceptedMinecraftVersions = "[1.7.2,1.8)", dependencies = "required-after:Forge@[10.12.0.1024,)")
public class BuildCraftCore extends BuildCraftMod { public class BuildCraftCore extends BuildCraftMod {
@ -199,6 +200,14 @@ public class BuildCraftCore extends BuildCraftMod {
public static AchievementPage BuildcraftAchievements; public static AchievementPage BuildcraftAchievements;
public static float diffX, diffY, diffZ;
private static FloatBuffer modelviewF;
private static FloatBuffer projectionF;
private static IntBuffer viewport;
private static FloatBuffer pos = ByteBuffer.allocateDirect(3 * 4).asFloatBuffer();
@Mod.EventHandler @Mod.EventHandler
public void loadConfiguration(FMLPreInitializationEvent evt) { public void loadConfiguration(FMLPreInitializationEvent evt) {
SchematicRegistry.declareBlueprintSupport("BuildCraft|Core"); SchematicRegistry.declareBlueprintSupport("BuildCraft|Core");
@ -391,14 +400,6 @@ public class BuildCraftCore extends BuildCraftMod {
InterModComms.processIMC(event); InterModComms.processIMC(event);
} }
public static float diffX, diffY, diffZ;
static FloatBuffer modelviewF;
static FloatBuffer projectionF;
static IntBuffer viewport;
static FloatBuffer pos = ByteBuffer.allocateDirect(3 * 4).asFloatBuffer();
@SubscribeEvent @SubscribeEvent
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void renderLast (RenderWorldLastEvent evt) { public void renderLast (RenderWorldLastEvent evt) {
@ -459,7 +460,7 @@ public class BuildCraftCore extends BuildCraftMod {
@Mod.EventHandler @Mod.EventHandler
public void load(FMLInitializationEvent event) { public void load(FMLInitializationEvent event) {
woodenGearAchievement = new Achievement("achievement.woodenGear", "woodenGearAchievement", 0, 0,woodenGearItem, null).registerStat(); woodenGearAchievement = new Achievement("achievement.woodenGear", "woodenGearAchievement", 0, 0, woodenGearItem, null).registerStat();
stoneGearAchievement = new Achievement("achievement.stoneGear", "stoneGearAchievement", 2, 0, stoneGearItem, woodenGearAchievement).registerStat(); stoneGearAchievement = new Achievement("achievement.stoneGear", "stoneGearAchievement", 2, 0, stoneGearItem, woodenGearAchievement).registerStat();
ironGearAchievement = new Achievement("achievement.ironGear", "ironGearAchievement", 4, 0, ironGearItem, stoneGearAchievement).registerStat(); ironGearAchievement = new Achievement("achievement.ironGear", "ironGearAchievement", 4, 0, ironGearItem, stoneGearAchievement).registerStat();
goldGearAchievement = new Achievement("achievement.goldGear", "goldGearAchievement", 6, 0, goldGearItem, ironGearAchievement).registerStat(); goldGearAchievement = new Achievement("achievement.goldGear", "goldGearAchievement", 6, 0, goldGearItem, ironGearAchievement).registerStat();
@ -474,7 +475,8 @@ public class BuildCraftCore extends BuildCraftMod {
fasterFillingAchievement = new Achievement("achievement.fasterFilling", "fasterFillingAchievement", 7, 2, BuildCraftBuilders.fillerBlock, goldGearAchievement).registerStat(); fasterFillingAchievement = new Achievement("achievement.fasterFilling", "fasterFillingAchievement", 7, 2, BuildCraftBuilders.fillerBlock, goldGearAchievement).registerStat();
timeForSomeLogicAchievement = new Achievement("achievement.timeForSomeLogic", "timeForSomeLogicAchievement", 9, -2, BuildCraftSilicon.assemblyTableBlock, diamondGearAchievement).registerStat(); timeForSomeLogicAchievement = new Achievement("achievement.timeForSomeLogic", "timeForSomeLogicAchievement", 9, -2, BuildCraftSilicon.assemblyTableBlock, diamondGearAchievement).registerStat();
refineAndRedefineAchievement = new Achievement("achievement.refineAndRedefine", "refineAndRedefineAchievement", 10, 0, BuildCraftFactory.refineryBlock, diamondGearAchievement).registerStat(); refineAndRedefineAchievement = new Achievement("achievement.refineAndRedefine", "refineAndRedefineAchievement", 10, 0, BuildCraftFactory.refineryBlock, diamondGearAchievement).registerStat();
tinglyLaserAchievement = new Achievement("achievement.tinglyLaser", "tinglyLaserAchievement", 11, -2, BuildCraftSilicon.laserBlock ,timeForSomeLogicAchievement).registerStat(); tinglyLaserAchievement = new Achievement("achievement.tinglyLaser", "tinglyLaserAchievement", 11, -2, BuildCraftSilicon.laserBlock,
timeForSomeLogicAchievement).registerStat();
architectAchievement = new Achievement("achievement.architect", "architectAchievement", 11, 2, BuildCraftBuilders.architectBlock, chunkDestroyerAchievement).registerStat(); architectAchievement = new Achievement("achievement.architect", "architectAchievement", 11, 2, BuildCraftBuilders.architectBlock, chunkDestroyerAchievement).registerStat();
builderAchievement = new Achievement("achievement.builder", "builderAchievement", 13, 2, BuildCraftBuilders.builderBlock, architectAchievement).registerStat(); builderAchievement = new Achievement("achievement.builder", "builderAchievement", 13, 2, BuildCraftBuilders.builderBlock, architectAchievement).registerStat();
blueprintAchievement = new Achievement("achievement.blueprint", "blueprintAchievement", 11, 4, BuildCraftBuilders.blueprintItem, architectAchievement).registerStat(); blueprintAchievement = new Achievement("achievement.blueprint", "blueprintAchievement", 11, 4, BuildCraftBuilders.blueprintItem, architectAchievement).registerStat();

View file

@ -20,6 +20,17 @@ import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.BiomeDictionary;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
@ -28,6 +39,7 @@ import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import buildcraft.api.blueprints.SchematicRegistry; import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.api.core.BCLog; import buildcraft.api.core.BCLog;
import buildcraft.api.fuels.IronEngineCoolant; import buildcraft.api.fuels.IronEngineCoolant;
@ -35,7 +47,6 @@ import buildcraft.api.fuels.IronEngineFuel;
import buildcraft.api.recipes.BuildcraftRecipes; import buildcraft.api.recipes.BuildcraftRecipes;
import buildcraft.core.BlockIndex; import buildcraft.core.BlockIndex;
import buildcraft.core.BlockSpring; import buildcraft.core.BlockSpring;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.DefaultProps; import buildcraft.core.DefaultProps;
import buildcraft.core.InterModComms; import buildcraft.core.InterModComms;
import buildcraft.core.Version; import buildcraft.core.Version;
@ -60,30 +71,18 @@ import buildcraft.energy.worldgen.BiomeGenOilOcean;
import buildcraft.energy.worldgen.BiomeInitializer; import buildcraft.energy.worldgen.BiomeInitializer;
import buildcraft.energy.worldgen.OilPopulate; import buildcraft.energy.worldgen.OilPopulate;
import buildcraft.transport.network.PacketHandlerTransport; import buildcraft.transport.network.PacketHandlerTransport;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@Mod(name = "BuildCraft Energy", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Energy", dependencies = DefaultProps.DEPENDENCY_CORE) @Mod(name = "BuildCraft Energy", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Energy", dependencies = DefaultProps.DEPENDENCY_CORE)
public class BuildCraftEnergy extends BuildCraftMod { public class BuildCraftEnergy extends BuildCraftMod {
public final static int ENERGY_REMOVE_BLOCK = 25; public static final int ENERGY_REMOVE_BLOCK = 25;
public final static int ENERGY_EXTRACT_ITEM = 2; public static final int ENERGY_EXTRACT_ITEM = 2;
public static boolean spawnOilSprings = true; public static boolean spawnOilSprings = true;
public static BiomeGenOilDesert biomeOilDesert; public static BiomeGenOilDesert biomeOilDesert;
public static BiomeGenOilOcean biomeOilOcean; public static BiomeGenOilOcean biomeOilOcean;
public static BlockEngine engineBlock; public static BlockEngine engineBlock;
public static BlockEnergyEmitter emitterBlock; public static BlockEnergyEmitter emitterBlock;
public static BlockEnergyReceiver receiverBlock; public static BlockEnergyReceiver receiverBlock;
private static Fluid buildcraftFluidOil;
private static Fluid buildcraftFluidFuel;
private static Fluid buildcraftFluidRedPlasma;
public static Fluid fluidOil; public static Fluid fluidOil;
public static Fluid fluidFuel; public static Fluid fluidFuel;
public static Fluid fluidRedPlasma; public static Fluid fluidRedPlasma;
@ -107,6 +106,10 @@ public class BuildCraftEnergy extends BuildCraftMod {
@Mod.Instance("BuildCraft|Energy") @Mod.Instance("BuildCraft|Energy")
public static BuildCraftEnergy instance; public static BuildCraftEnergy instance;
private static Fluid buildcraftFluidOil;
private static Fluid buildcraftFluidFuel;
private static Fluid buildcraftFluidRedPlasma;
@Mod.EventHandler @Mod.EventHandler
public void preInit(FMLPreInitializationEvent evt) { public void preInit(FMLPreInitializationEvent evt) {
SchematicRegistry.declareBlueprintSupport("BuildCraft|Energy"); SchematicRegistry.declareBlueprintSupport("BuildCraft|Energy");
@ -115,50 +118,77 @@ public class BuildCraftEnergy extends BuildCraftMod {
int oilOceanBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "biomeOilOcean", DefaultProps.BIOME_OIL_OCEAN).getInt(DefaultProps.BIOME_OIL_OCEAN); int oilOceanBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "biomeOilOcean", DefaultProps.BIOME_OIL_OCEAN).getInt(DefaultProps.BIOME_OIL_OCEAN);
canOilBurn = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "burnOil", true, "Can oil burn?").getBoolean(true); canOilBurn = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "burnOil", true, "Can oil burn?").getBoolean(true);
oilWellScalar = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "oilWellGenerationRate", 1.0, "Probability of oil well generation").getDouble(1.0); oilWellScalar = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "oilWellGenerationRate", 1.0, "Probability of oil well generation").getDouble(1.0);
for (String id : BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "oilBiomeIDs", BiomeDictionary.Type.DESERT.toString() +","+BiomeGenBase.taiga.biomeID, "IDs or Biome Types (e.g. DESERT,OCEAN) of biomes that should have increased oil generation rates.").getString().trim().split(",")){ for (String id : BuildCraftCore.mainConfiguration
id = id.trim(); .get(Configuration.CATEGORY_GENERAL, "oilBiomeIDs", BiomeDictionary.Type.DESERT.toString() + "," + BiomeGenBase.taiga.biomeID,
if(id.length() > 0){ "IDs or Biome Types (e.g. DESERT,OCEAN) of biomes that should have increased oil generation rates.").getString().trim().split(",")) {
try{oilBiomeIDs.add(Integer.parseInt(id));} String strippedId = id.trim();
catch(NumberFormatException ex){ //not an int so try and parse it as a biome type
try{ if (strippedId.length() > 0) {
for (BiomeGenBase b : BiomeDictionary.getBiomesForType(BiomeDictionary.Type.valueOf(id.toUpperCase()))){ try {
oilBiomeIDs.add(Integer.parseInt(strippedId));
} catch (NumberFormatException ex) { // not an int so try and
// parse it as a biome
// type
try {
for (BiomeGenBase b : BiomeDictionary.getBiomesForType(BiomeDictionary.Type.valueOf(strippedId
.toUpperCase()))) {
oilBiomeIDs.add(b.biomeID); oilBiomeIDs.add(b.biomeID);
} }
} } catch (Exception e) {
catch (Exception e){ BCLog.logger.log(Level.WARNING, "config.oilBiomeIDs: Could not find biome type: " + strippedId
BCLog.logger.log(Level.WARNING,"config.oilBiomeIDs: Could not find biome type: " + id + " ; Skipping!"); + " ; Skipping!");
} }
} }
} }
} }
for(String id : BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "excessiveOilBiomeIDs", "", "IDs or Biome Types (e.g. DESERT,OCEAN) of biomes that should have GREATLY increased oil generation rates.").getString().trim().split(",")) { for (String id : BuildCraftCore.mainConfiguration
id = id.trim(); .get(Configuration.CATEGORY_GENERAL,
if(id.length() > 0){ "excessiveOilBiomeIDs",
try{excessiveOilBiomeIDs.add(Integer.parseInt(id));} "",
catch(NumberFormatException ex){ //not an int so try and parse it as a biome type "IDs or Biome Types (e.g. DESERT,OCEAN) of biomes that should have GREATLY increased oil generation rates.")
try{ .getString().trim().split(",")) {
for (BiomeGenBase b : BiomeDictionary.getBiomesForType(BiomeDictionary.Type.valueOf(id.toUpperCase()))){ String strippedId = id.trim();
if (strippedId.length() > 0) {
try {
excessiveOilBiomeIDs.add(Integer.parseInt(strippedId));
} catch (NumberFormatException ex) { // not an int so try and
// parse it as a biome
// type
try {
for (BiomeGenBase b : BiomeDictionary.getBiomesForType(BiomeDictionary.Type.valueOf(strippedId
.toUpperCase()))) {
excessiveOilBiomeIDs.add(b.biomeID); excessiveOilBiomeIDs.add(b.biomeID);
} }
} } catch (Exception e) {
catch (Exception e){ BCLog.logger.log(Level.WARNING, "config.excessiveOilBiomeIDs: Could not find biome type: "
BCLog.logger.log(Level.WARNING,"config.excessiveOilBiomeIDs: Could not find biome type: " + id + " ; Skipping!"); + strippedId + " ; Skipping!");
} }
} }
} }
} }
for(String id : BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "excludeOilBiomeIDs", BiomeGenBase.sky.biomeID +","+BiomeGenBase.hell.biomeID, "IDs or Biome Types (e.g. DESERT,OCEAN) of biomes that are excluded from generating oil.").getString().trim().split(",")){ for (String id : BuildCraftCore.mainConfiguration
id = id.trim(); .get(Configuration.CATEGORY_GENERAL, "excludeOilBiomeIDs",
if(id.length() > 0){ BiomeGenBase.sky.biomeID + "," + BiomeGenBase.hell.biomeID,
try{excludeOilBiomeIDs.add(Integer.parseInt(id));} "IDs or Biome Types (e.g. DESERT,OCEAN) of biomes that are excluded from generating oil.")
catch(NumberFormatException ex){ //not an int so try and parse it as a biome type .getString().trim().split(",")) {
try{
for (BiomeGenBase b : BiomeDictionary.getBiomesForType(BiomeDictionary.Type.valueOf(id.toUpperCase()))){ String strippedId = id.trim();
if (strippedId.length() > 0) {
try {
excludeOilBiomeIDs.add(Integer.parseInt(strippedId));
} catch (NumberFormatException ex) { // not an int so try and
// parse it as a biome
// type
try {
for (BiomeGenBase b : BiomeDictionary.getBiomesForType(BiomeDictionary.Type.valueOf(strippedId
.toUpperCase()))) {
excludeOilBiomeIDs.add(b.biomeID); excludeOilBiomeIDs.add(b.biomeID);
} }
} } catch (Exception e) {
catch (Exception e){ BCLog.logger.log(Level.WARNING, "config.excludeOilBiomeIDs: Could not find biome type: "
BCLog.logger.log(Level.WARNING,"config.excludeOilBiomeIDs: Could not find biome type: " + id + " ; Skipping!"); + strippedId + " ; Skipping!");
} }
} }
} }

View file

@ -10,18 +10,32 @@ package buildcraft;
import java.util.List; import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import buildcraft.api.blueprints.SchematicRegistry; import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.builders.schematics.SchematicIgnoreMeta; import buildcraft.builders.schematics.SchematicIgnoreMeta;
import buildcraft.core.DefaultProps; import buildcraft.core.DefaultProps;
@ -55,18 +69,6 @@ import buildcraft.factory.TileRefinery;
import buildcraft.factory.TileTank; import buildcraft.factory.TileTank;
import buildcraft.factory.network.PacketHandlerFactory; import buildcraft.factory.network.PacketHandlerFactory;
import com.google.common.collect.Lists;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@Mod(name = "BuildCraft Factory", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Factory", dependencies = DefaultProps.DEPENDENCY_CORE) @Mod(name = "BuildCraft Factory", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Factory", dependencies = DefaultProps.DEPENDENCY_CORE)
public class BuildCraftFactory extends BuildCraftMod { public class BuildCraftFactory extends BuildCraftMod {

View file

@ -10,13 +10,15 @@ package buildcraft;
import java.util.EnumMap; import java.util.EnumMap;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.Packet;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.FMLEmbeddedChannel; import cpw.mods.fml.common.network.FMLEmbeddedChannel;
import cpw.mods.fml.common.network.FMLOutboundHandler; import cpw.mods.fml.common.network.FMLOutboundHandler;
import cpw.mods.fml.common.network.FMLOutboundHandler.OutboundTarget; import cpw.mods.fml.common.network.FMLOutboundHandler.OutboundTarget;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.Packet;
import net.minecraft.world.World;
import buildcraft.core.network.BuildCraftPacket; import buildcraft.core.network.BuildCraftPacket;
public class BuildCraftMod { public class BuildCraftMod {

View file

@ -15,6 +15,13 @@ import java.util.List;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import buildcraft.api.blueprints.SchematicRegistry; import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.api.recipes.BuildcraftRecipes; import buildcraft.api.recipes.BuildcraftRecipes;
import buildcraft.api.transport.PipeWire; import buildcraft.api.transport.PipeWire;
@ -44,11 +51,6 @@ import buildcraft.transport.gates.GateExpansionPulsar;
import buildcraft.transport.gates.GateExpansionRedstoneFader; import buildcraft.transport.gates.GateExpansionRedstoneFader;
import buildcraft.transport.gates.GateExpansionTimer; import buildcraft.transport.gates.GateExpansionTimer;
import buildcraft.transport.gates.ItemGate; import buildcraft.transport.gates.ItemGate;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
@Mod(name = "BuildCraft Silicon", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Silicon", dependencies = DefaultProps.DEPENDENCY_TRANSPORT) @Mod(name = "BuildCraft Silicon", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Silicon", dependencies = DefaultProps.DEPENDENCY_TRANSPORT)
public class BuildCraftSilicon extends BuildCraftMod { public class BuildCraftSilicon extends BuildCraftMod {

View file

@ -17,10 +17,20 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.RecipeSorter;
import buildcraft.api.blueprints.SchematicRegistry; import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.api.core.IIconProvider; import buildcraft.api.core.IIconProvider;
import buildcraft.api.core.JavaTools; import buildcraft.api.core.JavaTools;
@ -108,13 +118,6 @@ import buildcraft.transport.triggers.TriggerPipeContents;
import buildcraft.transport.triggers.TriggerPipeContents.PipeContents; import buildcraft.transport.triggers.TriggerPipeContents.PipeContents;
import buildcraft.transport.triggers.TriggerPipeSignal; import buildcraft.transport.triggers.TriggerPipeSignal;
import buildcraft.transport.triggers.TriggerRedstoneFaderInput; import buildcraft.transport.triggers.TriggerRedstoneFaderInput;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
@Mod(version = Version.VERSION, modid = "BuildCraft|Transport", name = "Buildcraft Transport", dependencies = DefaultProps.DEPENDENCY_CORE) @Mod(version = Version.VERSION, modid = "BuildCraft|Transport", name = "Buildcraft Transport", dependencies = DefaultProps.DEPENDENCY_CORE)
public class BuildCraftTransport extends BuildCraftMod { public class BuildCraftTransport extends BuildCraftMod {
@ -179,12 +182,15 @@ public class BuildCraftTransport extends BuildCraftMod {
public static BCAction actionExtractionPresetBlue = new ActionExtractionPreset(EnumColor.BLUE); public static BCAction actionExtractionPresetBlue = new ActionExtractionPreset(EnumColor.BLUE);
public static BCAction actionExtractionPresetGreen = new ActionExtractionPreset(EnumColor.GREEN); public static BCAction actionExtractionPresetGreen = new ActionExtractionPreset(EnumColor.GREEN);
public static BCAction actionExtractionPresetYellow = new ActionExtractionPreset(EnumColor.YELLOW); public static BCAction actionExtractionPresetYellow = new ActionExtractionPreset(EnumColor.YELLOW);
public IIconProvider pipeIconProvider = new PipeIconProvider();
public IIconProvider wireIconProvider = new WireIconProvider();
@Mod.Instance("BuildCraft|Transport") @Mod.Instance("BuildCraft|Transport")
public static BuildCraftTransport instance; public static BuildCraftTransport instance;
private static LinkedList<PipeRecipe> pipeRecipes = new LinkedList<PipeRecipe>();
public IIconProvider pipeIconProvider = new PipeIconProvider();
public IIconProvider wireIconProvider = new WireIconProvider();
private static class PipeRecipe { private static class PipeRecipe {
boolean isShapeless = false; // pipe recipes come shaped and unshaped. boolean isShapeless = false; // pipe recipes come shaped and unshaped.
@ -234,7 +240,6 @@ public class BuildCraftTransport extends BuildCraftMod {
return true; return true;
} }
} }
private static LinkedList<PipeRecipe> pipeRecipes = new LinkedList<PipeRecipe>();
@Mod.EventHandler @Mod.EventHandler
public void preInit(FMLPreInitializationEvent evt) { public void preInit(FMLPreInitializationEvent evt) {

View file

@ -8,12 +8,6 @@
*/ */
package buildcraft.builders; package buildcraft.builders;
import buildcraft.BuildCraftBuilders;
import buildcraft.api.tools.IToolWrench;
import buildcraft.core.BlockMultiTexture;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.GuiIds;
import buildcraft.core.utils.Utils;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -23,8 +17,16 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftBuilders;
import buildcraft.api.tools.IToolWrench;
import buildcraft.core.BlockMultiTexture;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.GuiIds;
import buildcraft.core.utils.Utils;
public class BlockArchitect extends BlockMultiTexture { public class BlockArchitect extends BlockMultiTexture {
public BlockArchitect() { public BlockArchitect() {
@ -40,8 +42,9 @@ public class BlockArchitect extends BlockMultiTexture {
public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) { public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) {
// Drop through if the player is sneaking // Drop through if the player is sneaking
if (entityplayer.isSneaking()) if (entityplayer.isSneaking()) {
return false; return false;
}
Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null; Item equipped = entityplayer.getCurrentEquippedItem() != null ? entityplayer.getCurrentEquippedItem().getItem() : null;
if (equipped instanceof IToolWrench && ((IToolWrench) equipped).canWrench(entityplayer, i, j, k)) { if (equipped instanceof IToolWrench && ((IToolWrench) equipped).canWrench(entityplayer, i, j, k)) {
@ -50,17 +53,17 @@ public class BlockArchitect extends BlockMultiTexture {
switch (ForgeDirection.values()[meta]) { switch (ForgeDirection.values()[meta]) {
case WEST: case WEST:
world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.SOUTH.ordinal(),0); world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.SOUTH.ordinal(), 0);
break; break;
case EAST: case EAST:
world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.NORTH.ordinal(),0); world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.NORTH.ordinal(), 0);
break; break;
case NORTH: case NORTH:
world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.WEST.ordinal(),0); world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.WEST.ordinal(), 0);
break; break;
case SOUTH: case SOUTH:
default: default:
world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.EAST.ordinal(),0); world.setBlockMetadataWithNotify(i, j, k, ForgeDirection.EAST.ordinal(), 0);
break; break;
} }
@ -90,7 +93,7 @@ public class BlockArchitect extends BlockMultiTexture {
ForgeDirection orientation = Utils.get2dOrientation(entityliving); ForgeDirection orientation = Utils.get2dOrientation(entityliving);
world.setBlockMetadataWithNotify(i, j, k, orientation.getOpposite().ordinal(),1); world.setBlockMetadataWithNotify(i, j, k, orientation.getOpposite().ordinal(), 1);
} }
@Override @Override

View file

@ -17,11 +17,13 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.GuiIds; import buildcraft.core.GuiIds;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockBlueprintLibrary extends BlockContainer { public class BlockBlueprintLibrary extends BlockContainer {
@ -39,18 +41,18 @@ public class BlockBlueprintLibrary extends BlockContainer {
super.onBlockActivated(world, i, j, k, entityplayer, par6, par7, par8, par9); super.onBlockActivated(world, i, j, k, entityplayer, par6, par7, par8, par9);
// Drop through if the player is sneaking // Drop through if the player is sneaking
if (entityplayer.isSneaking()) if (entityplayer.isSneaking()) {
return false; return false;
}
TileEntity tile = world.getTileEntity(i, j, k); TileEntity tile = world.getTileEntity(i, j, k);
if (tile instanceof TileBlueprintLibrary) { if (tile instanceof TileBlueprintLibrary) {
TileBlueprintLibrary tileBlueprint = (TileBlueprintLibrary)tile; TileBlueprintLibrary tileBlueprint = (TileBlueprintLibrary) tile;
if (!tileBlueprint.locked || entityplayer.getDisplayName().equals(tileBlueprint.owner))
if (!world.isRemote) {
entityplayer.openGui(BuildCraftBuilders.instance, GuiIds.BLUEPRINT_LIBRARY, world, i, j, k);
}
}
if (!world.isRemote) {
entityplayer.openGui(BuildCraftBuilders.instance, GuiIds.BLUEPRINT_LIBRARY, world, i, j, k);
}
}
return true; return true;
} }
@ -75,15 +77,16 @@ public class BlockBlueprintLibrary extends BlockContainer {
public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) {
if (!world.isRemote && entityliving instanceof EntityPlayer) { if (!world.isRemote && entityliving instanceof EntityPlayer) {
TileEntity tile = world.getTileEntity(i, j, k); TileEntity tile = world.getTileEntity(i, j, k);
if (tile instanceof TileBlueprintLibrary)
((TileBlueprintLibrary)tile).owner = ((EntityPlayer) entityliving).getDisplayName(); if (tile instanceof TileBlueprintLibrary) {
((TileBlueprintLibrary) tile).owner = ((EntityPlayer) entityliving).getDisplayName();
}
} }
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister par1IconRegister) public void registerBlockIcons(IIconRegister par1IconRegister) {
{
textureTop = par1IconRegister.registerIcon("buildcraft:library_topbottom"); textureTop = par1IconRegister.registerIcon("buildcraft:library_topbottom");
textureSide = par1IconRegister.registerIcon("buildcraft:library_side"); textureSide = par1IconRegister.registerIcon("buildcraft:library_side");
} }

View file

@ -12,17 +12,18 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
public class BlockBuildTool extends Block { public class BlockBuildTool extends Block {
private IIcon texture;
public BlockBuildTool() { public BlockBuildTool() {
super(Material.iron); super(Material.iron);
} }
IIcon texture;
@Override @Override
public IIcon getIcon(int i, int j) { public IIcon getIcon(int i, int j) {
return texture; return texture;

View file

@ -20,14 +20,17 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.tools.IToolWrench; import buildcraft.api.tools.IToolWrench;
import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.GuiIds; import buildcraft.core.GuiIds;
import buildcraft.core.utils.Utils; import buildcraft.core.utils.Utils;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockBuilder extends BlockContainer { public class BlockBuilder extends BlockContainer {

View file

@ -17,21 +17,24 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.filler.IFillerPattern; import buildcraft.api.filler.IFillerPattern;
import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.GuiIds; import buildcraft.core.GuiIds;
import buildcraft.core.utils.Utils; import buildcraft.core.utils.Utils;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockFiller extends BlockContainer { public class BlockFiller extends BlockContainer {
IIcon textureSides;
IIcon textureTopOn;
IIcon textureTopOff;
public IFillerPattern currentPattern; public IFillerPattern currentPattern;
private IIcon textureSides;
private IIcon textureTopOn;
private IIcon textureTopOff;
public BlockFiller() { public BlockFiller() {
super(Material.iron); super(Material.iron);

View file

@ -17,12 +17,15 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftCore; import buildcraft.BuildCraftCore;
import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.utils.Utils; import buildcraft.core.utils.Utils;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockMarker extends BlockContainer { public class BlockMarker extends BlockContainer {
@ -86,8 +89,9 @@ public class BlockMarker extends BlockContainer {
@Override @Override
public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) { public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int par6, float par7, float par8, float par9) {
TileEntity tile = world.getTileEntity(i, j, k); TileEntity tile = world.getTileEntity(i, j, k);
if (tile instanceof TileMarker) if (tile instanceof TileMarker) {
((TileMarker) tile).tryConnection(); ((TileMarker) tile).tryConnection();
}
return true; return true;
} }
@ -115,8 +119,9 @@ public class BlockMarker extends BlockContainer {
@Override @Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
TileEntity tile = world.getTileEntity(x, y, z); TileEntity tile = world.getTileEntity(x, y, z);
if (tile instanceof TileMarker) if (tile instanceof TileMarker) {
((TileMarker) tile).updateSignals(); ((TileMarker) tile).updateSignals();
}
dropTorchIfCantStay(world, x, y, z); dropTorchIfCantStay(world, x, y, z);
} }

View file

@ -14,11 +14,12 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.utils.Utils;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.core.utils.Utils;
public class BlockPathMarker extends BlockMarker { public class BlockPathMarker extends BlockMarker {
private IIcon activeMarker; private IIcon activeMarker;
@ -43,16 +44,16 @@ public class BlockPathMarker extends BlockMarker {
public IIcon getIcon(IBlockAccess iblockaccess, int i, int j, int k, int l) { public IIcon getIcon(IBlockAccess iblockaccess, int i, int j, int k, int l) {
TilePathMarker marker = (TilePathMarker) iblockaccess.getTileEntity(i, j, k); TilePathMarker marker = (TilePathMarker) iblockaccess.getTileEntity(i, j, k);
if (l == 1 || (marker != null && marker.tryingToConnect)) if (l == 1 || (marker != null && marker.tryingToConnect)) {
return activeMarker; return activeMarker;
else } else {
return super.getIcon(iblockaccess, i, j, k, l); return super.getIcon(iblockaccess, i, j, k, l);
}
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister par1IconRegister) public void registerBlockIcons(IIconRegister par1IconRegister) {
{
blockIcon = par1IconRegister.registerIcon("buildcraft:blockPathMarker"); blockIcon = par1IconRegister.registerIcon("buildcraft:blockPathMarker");
activeMarker = par1IconRegister.registerIcon("buildcraft:blockPathMarkerActive"); activeMarker = par1IconRegister.registerIcon("buildcraft:blockPathMarkerActive");
} }

View file

@ -8,11 +8,12 @@
*/ */
package buildcraft.builders; package buildcraft.builders;
import buildcraft.builders.urbanism.RenderBoxProvider;
import buildcraft.core.render.RenderBlockMultiTexture;
import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry;
import buildcraft.builders.urbanism.RenderBoxProvider;
import buildcraft.core.render.RenderBlockMultiTexture;
public class BuilderProxyClient extends BuilderProxy { public class BuilderProxyClient extends BuilderProxy {
@Override @Override

View file

@ -11,15 +11,19 @@ package buildcraft.builders;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.world.World; import net.minecraft.world.World;
public class BuildersProxy { public final class BuildersProxy {
/**
* Forbid contruction of this class
*/
private BuildersProxy() {
}
public static boolean canPlaceTorch(World world, int i, int j, int k) { public static boolean canPlaceTorch(World world, int i, int j, int k) {
Block block = world.getBlock(i, j, k); Block block = world.getBlock(i, j, k);
if (block == null || !block.renderAsNormalBlock()) return !(block == null || !block.renderAsNormalBlock());
return false;
else
return true;
} }
public static String getOwner(TileBlueprintLibrary library) { public static String getOwner(TileBlueprintLibrary library) {

View file

@ -15,7 +15,9 @@ import net.minecraft.block.Block;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.MappingRegistry; import buildcraft.api.blueprints.MappingRegistry;
@ -32,26 +34,26 @@ public class BuildingItem implements IBuilder {
public Position origin, destination; public Position origin, destination;
@NetworkData @NetworkData
double lifetime = 0; public LinkedList<StackAtPosition> stacksToDisplay = new LinkedList<StackAtPosition>();
@NetworkData
public LinkedList <StackAtPosition> stacksToDisplay = new LinkedList<StackAtPosition>();
public Position posDisplay = new Position(); public Position posDisplay = new Position();
public boolean isDone = false; public boolean isDone = false;
long previousUpdate;
double lifetimeDisplay = 0;
double maxLifetime = 0;
private boolean initialized = false;
double vx, vy, vz;
double maxHeight;
public BuildingSlot slotToBuild; public BuildingSlot slotToBuild;
public IBuilderContext context; public IBuilderContext context;
public double receivedProgress = 0; public double receivedProgress = 0;
private long previousUpdate;
private double lifetimeDisplay = 0;
private double maxLifetime = 0;
private boolean initialized = false;
private double vx, vy, vz;
private double maxHeight;
@NetworkData
private double lifetime = 0;
public void initialize () { public void initialize () {
if (!initialized) { if (!initialized) {
double dx = destination.x - origin.x; double dx = destination.x - origin.x;
@ -62,7 +64,7 @@ public class BuildingItem implements IBuilder {
maxLifetime = size * 5.0; maxLifetime = size * 5.0;
maxHeight = (5.0 + (destination.y - origin.y) / 2.0); maxHeight = 5.0 + (destination.y - origin.y) / 2.0;
// the below computation is an approximation of the distance to // the below computation is an approximation of the distance to
// travel for the object. It really follows a sinus, but we compute // travel for the object. It really follows a sinus, but we compute
@ -165,9 +167,9 @@ public class BuildingItem implements IBuilder {
private void build() { private void build() {
if (slotToBuild != null) { if (slotToBuild != null) {
int destX = (int)Math.floor(destination.x); int destX = (int) Math.floor(destination.x);
int destY = (int)Math.floor(destination.y); int destY = (int) Math.floor(destination.y);
int destZ = (int)Math.floor(destination.z); int destZ = (int) Math.floor(destination.z);
Block block = context.world().getBlock(destX, destY, destZ); Block block = context.world().getBlock(destX, destY, destZ);
int meta = context.world().getBlockMetadata(destX, destY, destZ); int meta = context.world().getBlockMetadata(destX, destY, destZ);
@ -185,7 +187,7 @@ public class BuildingItem implements IBuilder {
} }
} }
public LinkedList <StackAtPosition> getStacks () { public LinkedList<StackAtPosition> getStacks() {
int d = 0; int d = 0;
for (StackAtPosition s : stacksToDisplay) { for (StackAtPosition s : stacksToDisplay) {

View file

@ -8,58 +8,65 @@
*/ */
package buildcraft.builders; package buildcraft.builders;
import buildcraft.builders.gui.ContainerBlueprintLibrary;
import buildcraft.builders.gui.ContainerBuilder;
import buildcraft.builders.gui.ContainerFiller;
import buildcraft.builders.gui.ContainerArchitect;
import buildcraft.builders.gui.GuiBlueprintLibrary;
import buildcraft.builders.gui.GuiBuilder;
import buildcraft.builders.gui.GuiFiller;
import buildcraft.builders.gui.GuiArchitect;
import buildcraft.builders.urbanism.ContainerUrbanist;
import buildcraft.builders.urbanism.GuiUrbanist;
import buildcraft.builders.urbanism.TileUrbanist;
import buildcraft.core.GuiIds;
import buildcraft.core.proxy.CoreProxy;
import cpw.mods.fml.common.network.IGuiHandler;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;
import buildcraft.builders.gui.ContainerArchitect;
import buildcraft.builders.gui.ContainerBlueprintLibrary;
import buildcraft.builders.gui.ContainerBuilder;
import buildcraft.builders.gui.ContainerFiller;
import buildcraft.builders.gui.GuiArchitect;
import buildcraft.builders.gui.GuiBlueprintLibrary;
import buildcraft.builders.gui.GuiBuilder;
import buildcraft.builders.gui.GuiFiller;
import buildcraft.builders.urbanism.ContainerUrbanist;
import buildcraft.builders.urbanism.GuiUrbanist;
import buildcraft.builders.urbanism.TileUrbanist;
import buildcraft.core.GuiIds;
public class GuiHandler implements IGuiHandler { public class GuiHandler implements IGuiHandler {
@Override @Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
if (!world.blockExists(x, y, z)) if (!world.blockExists(x, y, z)) {
return null; return null;
}
TileEntity tile = world.getTileEntity(x, y, z); TileEntity tile = world.getTileEntity(x, y, z);
switch (ID) { switch (id) {
case GuiIds.ARCHITECT_TABLE: case GuiIds.ARCHITECT_TABLE:
if (!(tile instanceof TileArchitect)) if (!(tile instanceof TileArchitect)) {
return null; return null;
}
return new GuiArchitect(player.inventory, (TileArchitect) tile); return new GuiArchitect(player.inventory, (TileArchitect) tile);
case GuiIds.BLUEPRINT_LIBRARY: case GuiIds.BLUEPRINT_LIBRARY:
if (!(tile instanceof TileBlueprintLibrary)) if (!(tile instanceof TileBlueprintLibrary)) {
return null; return null;
}
return new GuiBlueprintLibrary(player, (TileBlueprintLibrary) tile); return new GuiBlueprintLibrary(player, (TileBlueprintLibrary) tile);
case GuiIds.BUILDER: case GuiIds.BUILDER:
if (!(tile instanceof TileBuilder)) if (!(tile instanceof TileBuilder)) {
return null; return null;
}
return new GuiBuilder(player.inventory, (TileBuilder) tile); return new GuiBuilder(player.inventory, (TileBuilder) tile);
case GuiIds.FILLER: case GuiIds.FILLER:
if (!(tile instanceof TileFiller)) if (!(tile instanceof TileFiller)) {
return null; return null;
}
return new GuiFiller(player.inventory, (TileFiller) tile); return new GuiFiller(player.inventory, (TileFiller) tile);
case GuiIds.URBANIST: case GuiIds.URBANIST:
if (!(tile instanceof TileUrbanist)) if (!(tile instanceof TileUrbanist)) {
return null; return null;
}
return new GuiUrbanist(player.inventory, (TileUrbanist) tile); return new GuiUrbanist(player.inventory, (TileUrbanist) tile);
@ -70,33 +77,38 @@ public class GuiHandler implements IGuiHandler {
} }
@Override @Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
if (!world.blockExists(x, y, z)) if (!world.blockExists(x, y, z)) {
return null; return null;
}
TileEntity tile = world.getTileEntity(x, y, z); TileEntity tile = world.getTileEntity(x, y, z);
switch (ID) { switch (id) {
case GuiIds.ARCHITECT_TABLE: case GuiIds.ARCHITECT_TABLE:
if (!(tile instanceof TileArchitect)) if (!(tile instanceof TileArchitect)) {
return null; return null;
}
return new ContainerArchitect(player.inventory, (TileArchitect) tile); return new ContainerArchitect(player.inventory, (TileArchitect) tile);
case GuiIds.BLUEPRINT_LIBRARY: case GuiIds.BLUEPRINT_LIBRARY:
if (!(tile instanceof TileBlueprintLibrary)) if (!(tile instanceof TileBlueprintLibrary)) {
return null; return null;
}
return new ContainerBlueprintLibrary(player, (TileBlueprintLibrary) tile); return new ContainerBlueprintLibrary(player, (TileBlueprintLibrary) tile);
case GuiIds.BUILDER: case GuiIds.BUILDER:
if (!(tile instanceof TileBuilder)) if (!(tile instanceof TileBuilder)) {
return null; return null;
}
return new ContainerBuilder(player.inventory, (TileBuilder) tile); return new ContainerBuilder(player.inventory, (TileBuilder) tile);
case GuiIds.FILLER: case GuiIds.FILLER:
if (!(tile instanceof TileFiller)) if (!(tile instanceof TileFiller)) {
return null; return null;
}
return new ContainerFiller(player.inventory, (TileFiller) tile); return new ContainerFiller(player.inventory, (TileFiller) tile);
case GuiIds.URBANIST: case GuiIds.URBANIST:

View file

@ -13,6 +13,7 @@ import java.util.List;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.blueprints.BuildingPermission; import buildcraft.api.blueprints.BuildingPermission;
import buildcraft.builders.blueprints.BlueprintId; import buildcraft.builders.blueprints.BlueprintId;
@ -34,14 +35,13 @@ public abstract class ItemBlueprint extends ItemBuildCraft {
if (NBTUtils.getItemData(stack).hasKey("name")) { if (NBTUtils.getItemData(stack).hasKey("name")) {
String name = NBTUtils.getItemData(stack).getString("name"); String name = NBTUtils.getItemData(stack).getString("name");
if (name.equals("")) { if ("".equals(name)) {
list.add(String.format(StringUtils.localize("item.blueprint.unnamed"))); list.add(String.format(StringUtils.localize("item.blueprint.unnamed")));
} else { } else {
list.add(String.format (name)); list.add(String.format (name));
} }
list.add(String.format(StringUtils list.add(String.format(StringUtils.localize("item.blueprint.author")
.localize("item.blueprint.author")
+ " " + " "
+ NBTUtils.getItemData(stack).getString("author"))); + NBTUtils.getItemData(stack).getString("author")));
} else { } else {
@ -49,15 +49,12 @@ public abstract class ItemBlueprint extends ItemBuildCraft {
} }
if (NBTUtils.getItemData(stack).hasKey("permission")) { if (NBTUtils.getItemData(stack).hasKey("permission")) {
BuildingPermission p = BuildingPermission.values()[NBTUtils BuildingPermission p = BuildingPermission.values()[NBTUtils.getItemData(stack).getByte("permission")];
.getItemData(stack).getByte("permission")];
if (p == BuildingPermission.CREATIVE_ONLY) { if (p == BuildingPermission.CREATIVE_ONLY) {
list.add(String.format(StringUtils list.add(String.format(StringUtils.localize("item.blueprint.creative_only")));
.localize("item.blueprint.creative_only")));
} else if (p == BuildingPermission.NONE) { } else if (p == BuildingPermission.NONE) {
list.add(String.format(StringUtils list.add(String.format(StringUtils.localize("item.blueprint.no_build")));
.localize("item.blueprint.no_build")));
} }
} }
} }

View file

@ -11,10 +11,12 @@ package buildcraft.builders;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import buildcraft.core.utils.NBTUtils;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.core.utils.NBTUtils;
public class ItemBlueprintStandard extends ItemBlueprint { public class ItemBlueprintStandard extends ItemBlueprint {
private IIcon cleanBlueprint; private IIcon cleanBlueprint;

View file

@ -11,10 +11,12 @@ package buildcraft.builders;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import buildcraft.core.utils.NBTUtils;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.core.utils.NBTUtils;
public class ItemBlueprintTemplate extends ItemBlueprint { public class ItemBlueprintTemplate extends ItemBlueprint {
private IIcon usedTemplate; private IIcon usedTemplate;

View file

@ -8,14 +8,14 @@
*/ */
package buildcraft.builders; package buildcraft.builders;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import buildcraft.builders.urbanism.RenderBoxProvider; import buildcraft.builders.urbanism.RenderBoxProvider;
import buildcraft.core.EntityLaser; import buildcraft.core.EntityLaser;
import buildcraft.core.LaserData; import buildcraft.core.LaserData;

View file

@ -8,6 +8,8 @@
*/ */
package buildcraft.builders; package buildcraft.builders;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
@ -15,8 +17,6 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import buildcraft.core.DefaultProps; import buildcraft.core.DefaultProps;
import buildcraft.core.EntityLaser; import buildcraft.core.EntityLaser;
import buildcraft.core.LaserData; import buildcraft.core.LaserData;
@ -24,12 +24,13 @@ import buildcraft.core.render.RenderLaser;
public class RenderPathMarker extends TileEntitySpecialRenderer { public class RenderPathMarker extends TileEntitySpecialRenderer {
private static final ResourceLocation CHAMBER_TEXTURE = new ResourceLocation(DefaultProps.TEXTURE_PATH_BLOCKS
+ "/chamber2.png");
private ModelBase model = new ModelBase() { private ModelBase model = new ModelBase() {
}; };
private ModelRenderer box; private ModelRenderer box;
private static final ResourceLocation CHAMBER_TEXTURE = new ResourceLocation(DefaultProps.TEXTURE_PATH_BLOCKS + "/chamber2.png");
public RenderPathMarker() { public RenderPathMarker() {
box = new ModelRenderer(model, 0, 1); box = new ModelRenderer(model, 0, 1);
box.addBox(-8F, -8F, -8F, 16, 4, 16); box.addBox(-8F, -8F, -8F, 16, 4, 16);

View file

@ -13,6 +13,7 @@ import java.util.LinkedList;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import buildcraft.api.blueprints.ITileBuilder; import buildcraft.api.blueprints.ITileBuilder;
import buildcraft.api.blueprints.SchematicRegistry; import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.api.core.NetworkData; import buildcraft.api.core.NetworkData;
@ -35,19 +36,18 @@ public abstract class TileAbstractBuilder extends TileBuildCraft implements ITil
*/ */
private static final double FULL_CHEST_ENERGY = 9 * 3 * 64 * SchematicRegistry.BUILD_ENERGY + 1000; private static final double FULL_CHEST_ENERGY = 9 * 3 * 64 * SchematicRegistry.BUILD_ENERGY + 1000;
@NetworkData
public LinkedList<LaserData> pathLasers = new LinkedList<LaserData> ();
public ArrayList<BuildingItem> buildersInAction = new ArrayList<BuildingItem>();
protected SafeTimeTracker buildTracker = new SafeTimeTracker(5);
@MjBattery(maxReceivedPerCycle = 100, maxCapacity = FULL_CHEST_ENERGY, minimumConsumption = 1) @MjBattery(maxReceivedPerCycle = 100, maxCapacity = FULL_CHEST_ENERGY, minimumConsumption = 1)
protected double mjStored = 0; protected double mjStored = 0;
private double mjPrev = 0; private double mjPrev = 0;
private int mjUnchangedCycles = 0; private int mjUnchangedCycles = 0;
@NetworkData
public LinkedList<LaserData> pathLasers = new LinkedList<LaserData> ();
public ArrayList <BuildingItem> buildersInAction = new ArrayList<BuildingItem>();
protected SafeTimeTracker buildTracker = new SafeTimeTracker(5);
@Override @Override
public void initialize () { public void initialize () {
super.initialize(); super.initialize();

View file

@ -14,8 +14,10 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.blueprints.Translation; import buildcraft.api.blueprints.Translation;
import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.IAreaProvider;
@ -37,25 +39,22 @@ import buildcraft.core.network.RPCSide;
import buildcraft.core.utils.Utils; import buildcraft.core.utils.Utils;
public class TileArchitect extends TileBuildCraft implements IInventory, IBoxProvider { public class TileArchitect extends TileBuildCraft implements IInventory, IBoxProvider {
private final static int SCANNER_ITERATION = 100;
private BlueprintBase writingBlueprint; private static final int SCANNER_ITERATION = 100;
private BptContext writingContext;
private BlockScanner blockScanner;
public int computingTime = 0; public int computingTime = 0;
public String currentAuthorName = "";
@NetworkData
public Box box = new Box();
@NetworkData
public String name = "";
@NetworkData @NetworkData
public BlueprintReadConfiguration readConfiguration = new BlueprintReadConfiguration(); public BlueprintReadConfiguration readConfiguration = new BlueprintReadConfiguration();
@NetworkData private ItemStack[] items = new ItemStack[2];
public Box box = new Box(); private BlueprintBase writingBlueprint;
private BptContext writingContext;
private ItemStack items[] = new ItemStack[2]; private BlockScanner blockScanner;
@NetworkData
public String name = "";
public String currentAuthorName = "";
public TileArchitect() { public TileArchitect() {
box.kind = Kind.STRIPES; box.kind = Kind.STRIPES;

View file

@ -16,6 +16,7 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.core.NetworkData; import buildcraft.api.core.NetworkData;
import buildcraft.builders.blueprints.BlueprintId; import buildcraft.builders.blueprints.BlueprintId;
@ -33,10 +34,10 @@ import buildcraft.core.network.RPCSide;
* environment, and save blueprints to the server environment. * environment, and save blueprints to the server environment.
*/ */
public class TileBlueprintLibrary extends TileBuildCraft implements IInventory { public class TileBlueprintLibrary extends TileBuildCraft implements IInventory {
public ItemStack[] stack = new ItemStack[4];
private static final int PROGRESS_TIME = 100; private static final int PROGRESS_TIME = 100;
public ItemStack[] stack = new ItemStack[4];
public int progressIn = 0; public int progressIn = 0;
public int progressOut = 0; public int progressOut = 0;
@ -46,12 +47,11 @@ public class TileBlueprintLibrary extends TileBuildCraft implements IInventory {
public ArrayList<BlueprintId> currentPage; public ArrayList<BlueprintId> currentPage;
public int selected = -1; public int selected = -1;
boolean locked = false;
public EntityPlayer uploadingPlayer = null; public EntityPlayer uploadingPlayer = null;
public EntityPlayer downloadingPlayer = null; public EntityPlayer downloadingPlayer = null;
int pageId = 0; private int pageId = 0;
public TileBlueprintLibrary() { public TileBlueprintLibrary() {
@ -106,7 +106,6 @@ public class TileBlueprintLibrary extends TileBuildCraft implements IInventory {
super.readFromNBT(nbttagcompound); super.readFromNBT(nbttagcompound);
owner = nbttagcompound.getString("owner"); owner = nbttagcompound.getString("owner");
locked = nbttagcompound.getBoolean("locked");
InvUtils.readStacksFromNBT(nbttagcompound, "stack", stack); InvUtils.readStacksFromNBT(nbttagcompound, "stack", stack);
} }
@ -116,7 +115,6 @@ public class TileBlueprintLibrary extends TileBuildCraft implements IInventory {
super.writeToNBT(nbttagcompound); super.writeToNBT(nbttagcompound);
nbttagcompound.setString("owner", owner); nbttagcompound.setString("owner", owner);
nbttagcompound.setBoolean("locked", locked);
InvUtils.writeStacksToNBT(nbttagcompound, "stack", stack); InvUtils.writeStacksToNBT(nbttagcompound, "stack", stack);
} }

View file

@ -19,8 +19,10 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.WorldSettings.GameType; import net.minecraft.world.WorldSettings.GameType;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.blueprints.BuildingPermission; import buildcraft.api.blueprints.BuildingPermission;
import buildcraft.api.blueprints.Translation; import buildcraft.api.blueprints.Translation;
@ -47,18 +49,16 @@ public class TileBuilder extends TileAbstractBuilder implements IMachine {
private static int POWER_ACTIVATION = 50; private static int POWER_ACTIVATION = 50;
private final ItemStack items[] = new ItemStack[28];
private BptBuilderBase bluePrintBuilder;
@NetworkData @NetworkData
public Box box = new Box(); public Box box = new Box();
public PathIterator currentPathIterator;
private final ItemStack[] items = new ItemStack[28];
private BptBuilderBase bluePrintBuilder;
private LinkedList<BlockIndex> path; private LinkedList<BlockIndex> path;
private LinkedList<ItemStack> requiredToBuild;
private LinkedList <ItemStack> requiredToBuild;
private NBTTagCompound initNBT = null; private NBTTagCompound initNBT = null;
private boolean done = true;
private class PathIterator { private class PathIterator {
@ -177,10 +177,6 @@ public class TileBuilder extends TileAbstractBuilder implements IMachine {
} }
} }
public PathIterator currentPathIterator;
private boolean done = true;
public TileBuilder() { public TileBuilder() {
super(); super();
@ -630,7 +626,7 @@ public class TileBuilder extends TileAbstractBuilder implements IMachine {
} }
@RPC (RPCSide.CLIENT) @RPC (RPCSide.CLIENT)
public void setItemRequirements (LinkedList <ItemStack> rq, LinkedList <Integer> realSizes) { public void setItemRequirements(LinkedList<ItemStack> rq, LinkedList<Integer> realSizes) {
// Item stack serialized are represented through bytes, so 0-255. In // Item stack serialized are represented through bytes, so 0-255. In
// order to get the real amounts, we need to pass the real sizes of the // order to get the real amounts, we need to pass the real sizes of the
// stacks as a separate list. // stacks as a separate list.
@ -638,8 +634,8 @@ public class TileBuilder extends TileAbstractBuilder implements IMachine {
requiredToBuild = rq; requiredToBuild = rq;
if (rq != null && rq.size() > 0) { if (rq != null && rq.size() > 0) {
Iterator <ItemStack> itStack = rq.iterator(); Iterator<ItemStack> itStack = rq.iterator();
Iterator <Integer> size = realSizes.iterator(); Iterator<Integer> size = realSizes.iterator();
while (true) { while (true) {
ItemStack stack = itStack.next(); ItemStack stack = itStack.next();
@ -711,7 +707,7 @@ public class TileBuilder extends TileAbstractBuilder implements IMachine {
public void updateRequirements () { public void updateRequirements () {
if (bluePrintBuilder instanceof BptBuilderBlueprint) { if (bluePrintBuilder instanceof BptBuilderBlueprint) {
LinkedList <Integer> realSize = new LinkedList<Integer>(); LinkedList<Integer> realSize = new LinkedList<Integer>();
for (ItemStack stack : ((BptBuilderBlueprint) bluePrintBuilder).neededItems) { for (ItemStack stack : ((BptBuilderBlueprint) bluePrintBuilder).neededItems) {
realSize.add(stack.stackSize); realSize.add(stack.stackSize);

View file

@ -8,14 +8,15 @@
*/ */
package buildcraft.builders; package buildcraft.builders;
import io.netty.buffer.ByteBuf;
import java.io.IOException; import java.io.IOException;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import buildcraft.BuildCraftCore; import buildcraft.BuildCraftCore;
import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.IAreaProvider;
import buildcraft.api.filler.FillerManager; import buildcraft.api.filler.FillerManager;
@ -41,12 +42,13 @@ import buildcraft.core.utils.Utils;
public class TileFiller extends TileAbstractBuilder implements IMachine, IActionReceptor { public class TileFiller extends TileAbstractBuilder implements IMachine, IActionReceptor {
private static int POWER_ACTIVATION = 50;
public FillerPattern currentPattern = PatternFill.INSTANCE; public FillerPattern currentPattern = PatternFill.INSTANCE;
private BptBuilderTemplate currentTemplate; private BptBuilderTemplate currentTemplate;
private BptContext context; private BptContext context;
private static int POWER_ACTIVATION = 50;
private final Box box = new Box(); private final Box box = new Box();
private boolean done = false; private boolean done = false;
private ActionMachineControl.Mode lastMode = ActionMachineControl.Mode.Unknown; private ActionMachineControl.Mode lastMode = ActionMachineControl.Mode.Unknown;
@ -119,7 +121,7 @@ public class TileFiller extends TileAbstractBuilder implements IMachine, IAction
if (done) { if (done) {
if (lastMode == Mode.Loop) { if (lastMode == Mode.Loop) {
done = false; done = false;
}else{ } else {
return; return;
} }
} }
@ -138,7 +140,7 @@ public class TileFiller extends TileAbstractBuilder implements IMachine, IAction
} }
} }
if(oldDone != done){ if (oldDone != done) {
sendNetworkUpdate(); sendNetworkUpdate();
} }
} }

View file

@ -11,6 +11,7 @@ package buildcraft.builders;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.IAreaProvider;
import buildcraft.api.core.NetworkData; import buildcraft.api.core.NetworkData;
@ -23,13 +24,13 @@ import buildcraft.core.proxy.CoreProxy;
import buildcraft.core.utils.Utils; import buildcraft.core.utils.Utils;
public class TileMarker extends TileBuildCraft implements IAreaProvider { public class TileMarker extends TileBuildCraft implements IAreaProvider {
private static int maxSize = 64; private static int maxSize = 64;
public static class TileWrapper { public static class TileWrapper {
public @NetworkData @NetworkData
int x, y, z; public int x, y, z;
private TileMarker marker;
public TileWrapper() { public TileWrapper() {
x = Integer.MAX_VALUE; x = Integer.MAX_VALUE;
@ -43,8 +44,6 @@ public class TileMarker extends TileBuildCraft implements IAreaProvider {
this.z = z; this.z = z;
} }
private TileMarker marker;
public boolean isSet() { public boolean isSet() {
return x != Integer.MAX_VALUE; return x != Integer.MAX_VALUE;
} }
@ -69,28 +68,28 @@ public class TileMarker extends TileBuildCraft implements IAreaProvider {
} }
public static class Origin { public static class Origin {
@NetworkData
public TileWrapper vectO = new TileWrapper();
@NetworkData
public TileWrapper[] vect = {new TileWrapper(), new TileWrapper(), new TileWrapper()};
@NetworkData
public int xMin, yMin, zMin, xMax, yMax, zMax;
public boolean isSet() { public boolean isSet() {
return vectO.isSet(); return vectO.isSet();
} }
public @NetworkData
TileWrapper vectO = new TileWrapper();
public @NetworkData
TileWrapper[] vect = { new TileWrapper(), new TileWrapper(), new TileWrapper() };
public @NetworkData
int xMin, yMin, zMin, xMax, yMax, zMax;
} }
public @NetworkData @NetworkData
Origin origin = new Origin(); public Origin origin = new Origin();
@NetworkData
public boolean showSignals = false;
private Position initVectO;
private Position[] initVect;
private EntityBlock[] lasers; private EntityBlock[] lasers;
private EntityBlock[] signals; private EntityBlock[] signals;
public @NetworkData
boolean showSignals = false;
public void updateSignals() { public void updateSignals() {
if (!worldObj.isRemote) { if (!worldObj.isRemote) {
showSignals = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); showSignals = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord);
@ -132,8 +131,6 @@ public class TileMarker extends TileBuildCraft implements IAreaProvider {
} }
} }
private Position initVectO, initVect[];
@Override @Override
public void initialize() { public void initialize() {
super.initialize(); super.initialize();

View file

@ -16,6 +16,7 @@ import java.util.TreeSet;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.api.core.NetworkData; import buildcraft.api.core.NetworkData;
import buildcraft.api.core.Position; import buildcraft.api.core.Position;
import buildcraft.core.BlockIndex; import buildcraft.core.BlockIndex;
@ -24,17 +25,6 @@ import buildcraft.core.network.PacketUpdate;
public class TilePathMarker extends TileMarker { public class TilePathMarker extends TileMarker {
public int x0, y0, z0, x1, y1, z1;
public boolean loadLink0 = false, loadLink1 = false;
@NetworkData
public LaserData lasers[] = new LaserData [2];
@NetworkData
public boolean tryingToConnect = false;
public TilePathMarker links[] = new TilePathMarker[2];
// TODO: this should be moved to default props // TODO: this should be moved to default props
// A list with the pathMarkers that aren't fully connected // A list with the pathMarkers that aren't fully connected
// It only contains markers within the loaded chunks // It only contains markers within the loaded chunks
@ -42,6 +32,18 @@ public class TilePathMarker extends TileMarker {
private static LinkedList<TilePathMarker> availableMarkers = new LinkedList<TilePathMarker>(); private static LinkedList<TilePathMarker> availableMarkers = new LinkedList<TilePathMarker>();
public int x0, y0, z0, x1, y1, z1;
public boolean loadLink0 = false;
public boolean loadLink1 = false;
@NetworkData
public LaserData[] lasers = new LaserData[2];
@NetworkData
public boolean tryingToConnect = false;
public TilePathMarker[] links = new TilePathMarker[2];
public boolean isFullyConnected() { public boolean isFullyConnected() {
return lasers[0] != null && lasers[1] != null; return lasers[0] != null && lasers[1] != null;
} }

View file

@ -24,18 +24,20 @@ import java.util.logging.Logger;
import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.builders.blueprints.BlueprintId.Kind; import buildcraft.builders.blueprints.BlueprintId.Kind;
import buildcraft.core.blueprints.BlueprintBase; import buildcraft.core.blueprints.BlueprintBase;
public class BlueprintDatabase { public class BlueprintDatabase {
private final int bufferSize = 8192; private static final String BPT_EXTENSION = ".bpt";
private final static String BPT_EXTENSION = ".bpt"; private static final String TPL_EXTENSION = ".tpl";
private final static String TPL_EXTENSION = ".tpl"; private static final int PAGE_SIZE = 12;
private File blueprintFolder;
private final static int PAGE_SIZE = 12;
private Set <BlueprintId> blueprintIds = new TreeSet<BlueprintId> (); private final int bufferSize = 8192;
private File blueprintFolder;
private Set<BlueprintId> blueprintIds = new TreeSet<BlueprintId>();
private BlueprintId [] pages = new BlueprintId [0]; private BlueprintId [] pages = new BlueprintId [0];
/** /**

View file

@ -12,16 +12,18 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.Arrays; import java.util.Arrays;
import net.minecraft.nbt.NBTTagCompound;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import net.minecraft.nbt.NBTTagCompound;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.api.core.NetworkData; import buildcraft.api.core.NetworkData;
public final class BlueprintId implements Comparable<BlueprintId> { public final class BlueprintId implements Comparable<BlueprintId> {
public enum Kind {Template, Blueprint}; public enum Kind {
Template, Blueprint
};
@NetworkData @NetworkData
public byte[] uniqueId; public byte[] uniqueId;

View file

@ -12,10 +12,10 @@ import net.minecraft.inventory.IInventory;
public interface IBlueprintBuilderAgent { public interface IBlueprintBuilderAgent {
public boolean breakBlock (int x, int y, int z); boolean breakBlock(int x, int y, int z);
public IInventory getInventory (); IInventory getInventory();
public boolean buildBlock(int x, int y, int z); boolean buildBlock(int x, int y, int z);
} }

View file

@ -9,10 +9,11 @@
package buildcraft.builders.filler.pattern; package buildcraft.builders.filler.pattern;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.core.Box; import buildcraft.core.Box;
import buildcraft.core.blueprints.Template; import buildcraft.core.blueprints.Template;
public class PatternFill extends FillerPattern { public final class PatternFill extends FillerPattern {
public static final PatternFill INSTANCE = new PatternFill(); public static final PatternFill INSTANCE = new PatternFill();

View file

@ -9,19 +9,20 @@
package buildcraft.builders.filler.pattern; package buildcraft.builders.filler.pattern;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.api.blueprints.SchematicMask; import buildcraft.api.blueprints.SchematicMask;
import buildcraft.core.Box; import buildcraft.core.Box;
import buildcraft.core.blueprints.Template; import buildcraft.core.blueprints.Template;
public class PatternPyramid extends FillerPattern { public class PatternPyramid extends FillerPattern {
// TODO: These parameters need to be settable from the filler
private boolean param1 = true;
public PatternPyramid() { public PatternPyramid() {
super("pyramid"); super("pyramid");
} }
// TODO: These parameters need to be settable from the filler
boolean param1 = true;
@Override @Override
public Template getTemplate (Box box, World world) { public Template getTemplate (Box box, World world) {
int xMin = (int) box.pMin().x; int xMin = (int) box.pMin().x;

View file

@ -9,22 +9,22 @@
package buildcraft.builders.filler.pattern; package buildcraft.builders.filler.pattern;
import net.minecraft.world.World; import net.minecraft.world.World;
import buildcraft.core.Box; import buildcraft.core.Box;
import buildcraft.core.blueprints.Template; import buildcraft.core.blueprints.Template;
public class PatternStairs extends FillerPattern { public class PatternStairs extends FillerPattern {
// TODO: These parameters need to be settable from the filler
private boolean param1 = true;
private int param2 = 0;
private int param3 = 0;
private int param4 = 0;
public PatternStairs() { public PatternStairs() {
super("stairs"); super("stairs");
} }
// TODO: These parameters need to be settable from the filler
boolean param1 = true;
int param2 = 0;
int param3 = 0;
int param4 = 0;
@Override @Override
public Template getTemplate(Box box, World world) { public Template getTemplate(Box box, World world) {
int xMin = 0; int xMin = 0;
@ -55,7 +55,7 @@ public class PatternStairs extends FillerPattern {
int kind = 0; int kind = 0;
int steps[] = new int[]{0, 0, 0, 0}; int[] steps = new int[] {0, 0, 0, 0};
int x = 0, z = 0; int x = 0, z = 0;
int stepDiagX = 0, stepDiagZ = 0; int stepDiagX = 0, stepDiagZ = 0;

View file

@ -13,6 +13,7 @@ import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import buildcraft.builders.TileBlueprintLibrary; import buildcraft.builders.TileBlueprintLibrary;
import buildcraft.core.gui.BuildCraftContainer; import buildcraft.core.gui.BuildCraftContainer;
@ -58,7 +59,7 @@ public class ContainerBlueprintLibrary extends BuildCraftContainer {
if (slotNum == 0) { if (slotNum == 0) {
library.uploadingPlayer = player; library.uploadingPlayer = player;
} else if (slotNum == 2){ } else if (slotNum == 2) {
library.downloadingPlayer = player; library.downloadingPlayer = player;
} }

View file

@ -8,12 +8,13 @@
*/ */
package buildcraft.builders.gui; package buildcraft.builders.gui;
import buildcraft.builders.TileBuilder;
import buildcraft.core.gui.BuildCraftContainer;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import buildcraft.builders.TileBuilder;
import buildcraft.core.gui.BuildCraftContainer;
public class ContainerBuilder extends BuildCraftContainer { public class ContainerBuilder extends BuildCraftContainer {
IInventory playerIInventory; IInventory playerIInventory;

View file

@ -8,17 +8,19 @@
*/ */
package buildcraft.builders.gui; package buildcraft.builders.gui;
import buildcraft.builders.TileFiller;
import buildcraft.core.gui.BuildCraftContainer;
import buildcraft.core.gui.GuiBuildCraft;
import buildcraft.core.gui.widgets.Widget;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.builders.TileFiller;
import buildcraft.core.gui.BuildCraftContainer;
import buildcraft.core.gui.GuiBuildCraft;
import buildcraft.core.gui.widgets.Widget;
public class ContainerFiller extends BuildCraftContainer { public class ContainerFiller extends BuildCraftContainer {
IInventory playerIInventory; IInventory playerIInventory;

View file

@ -10,12 +10,12 @@ package buildcraft.builders.gui;
import java.util.Date; import java.util.Date;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import buildcraft.builders.TileArchitect; import buildcraft.builders.TileArchitect;
import buildcraft.core.DefaultProps; import buildcraft.core.DefaultProps;
import buildcraft.core.blueprints.BlueprintReadConfiguration; import buildcraft.core.blueprints.BlueprintReadConfiguration;

View file

@ -8,12 +8,12 @@
*/ */
package buildcraft.builders.gui; package buildcraft.builders.gui;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.builders.TileBlueprintLibrary; import buildcraft.builders.TileBlueprintLibrary;
import buildcraft.builders.blueprints.BlueprintId; import buildcraft.builders.blueprints.BlueprintId;
@ -24,12 +24,16 @@ import buildcraft.core.utils.StringUtils;
public class GuiBlueprintLibrary extends GuiBuildCraft { public class GuiBlueprintLibrary extends GuiBuildCraft {
private static final ResourceLocation TEXTURE = new ResourceLocation( private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/library_rw.png");
"buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/library_rw.png"); private GuiButton nextPageButton;
EntityPlayer player; private GuiButton prevPageButton;
TileBlueprintLibrary library; private GuiButton lockButton;
ContainerBlueprintLibrary container; private GuiButton deleteButton;
boolean computeInput; private EntityPlayer player;
private TileBlueprintLibrary library;
private ContainerBlueprintLibrary container;
private boolean computeInput;
public GuiBlueprintLibrary(EntityPlayer player, TileBlueprintLibrary library) { public GuiBlueprintLibrary(EntityPlayer player, TileBlueprintLibrary library) {
super(new ContainerBlueprintLibrary(player, library), library, TEXTURE); super(new ContainerBlueprintLibrary(player, library), library, TEXTURE);
this.player = player; this.player = player;
@ -40,11 +44,6 @@ public class GuiBlueprintLibrary extends GuiBuildCraft {
container = (ContainerBlueprintLibrary) inventorySlots; container = (ContainerBlueprintLibrary) inventorySlots;
} }
private GuiButton nextPageButton;
private GuiButton prevPageButton;
private GuiButton lockButton;
private GuiButton deleteButton;
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void initGui() { public void initGui() {

View file

@ -10,12 +10,12 @@ package buildcraft.builders.gui;
import java.util.Collection; import java.util.Collection;
import org.lwjgl.opengl.GL11;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import buildcraft.builders.TileBuilder; import buildcraft.builders.TileBuilder;
import buildcraft.core.DefaultProps; import buildcraft.core.DefaultProps;
import buildcraft.core.gui.AdvancedSlot; import buildcraft.core.gui.AdvancedSlot;
@ -26,8 +26,9 @@ public class GuiBuilder extends GuiAdvancedInterface {
private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/builder.png"); private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/builder.png");
private static final ResourceLocation BLUEPRINT_TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/builder_blueprint.png"); private static final ResourceLocation BLUEPRINT_TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/builder_blueprint.png");
IInventory playerInventory; private IInventory playerInventory;
TileBuilder builder; private TileBuilder builder;
private int inventoryRows = 6;
public GuiBuilder(IInventory playerInventory, TileBuilder builder) { public GuiBuilder(IInventory playerInventory, TileBuilder builder) {
super(new ContainerBuilder(playerInventory, builder), builder, TEXTURE); super(new ContainerBuilder(playerInventory, builder), builder, TEXTURE);
@ -96,5 +97,4 @@ public class GuiBuilder extends GuiAdvancedInterface {
drawBackgroundSlots(); drawBackgroundSlots();
} }
int inventoryRows = 6;
} }

View file

@ -12,6 +12,7 @@ import java.util.LinkedList;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.SchematicBlock; import buildcraft.api.blueprints.SchematicBlock;
@ -26,7 +27,7 @@ public class SchematicBed extends SchematicBlock {
@Override @Override
public void rotateLeft(IBuilderContext context) { public void rotateLeft(IBuilderContext context) {
int orientation = (meta & 7); int orientation = meta & 7;
int others = meta - orientation; int others = meta - orientation;
switch (orientation) { switch (orientation) {
@ -46,7 +47,7 @@ public class SchematicBed extends SchematicBlock {
} }
@Override @Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
if ((meta & 8) != 0) { if ((meta & 8) != 0) {
return; return;
} }

View file

@ -12,6 +12,7 @@ import java.util.LinkedList;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.SchematicBlock; import buildcraft.api.blueprints.SchematicBlock;
@ -23,7 +24,7 @@ public class SchematicCactus extends SchematicBlock {
} }
@Override @Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
context.world().setBlock(x, y, z, Blocks.cactus, 0, 3); context.world().setBlock(x, y, z, Blocks.cactus, 0, 3);
} }

View file

@ -11,8 +11,9 @@ package buildcraft.builders.schematics;
import java.util.LinkedList; import java.util.LinkedList;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import buildcraft.api.blueprints.SchematicBlock;
import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.SchematicBlock;
public class SchematicCustomStack extends SchematicBlock { public class SchematicCustomStack extends SchematicBlock {

View file

@ -13,6 +13,7 @@ import java.util.LinkedList;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.SchematicBlock; import buildcraft.api.blueprints.SchematicBlock;
@ -24,7 +25,7 @@ public class SchematicDirt extends SchematicBlock {
} }
@Override @Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList <ItemStack> stacks) { public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
context.world().setBlock(x, y, z, Blocks.dirt, meta, 3); context.world().setBlock(x, y, z, Blocks.dirt, meta, 3);
} }

Some files were not shown because too many files have changed in this diff Show more