Fixed residual liquid in pumps, close #1790

Fixed residual liquid in refineries, close #1791
This commit is contained in:
SpaceToad 2014-05-13 20:47:00 +02:00
parent 424a976cd0
commit 7f6a0fec90
4 changed files with 77 additions and 24 deletions

View file

@ -57,8 +57,6 @@ import buildcraft.factory.FactoryProxy;
import buildcraft.factory.FactoryProxyClient;
import buildcraft.factory.GuiHandler;
import buildcraft.factory.PumpDimensionList;
import buildcraft.factory.SchematicRefinery;
import buildcraft.factory.SchematicTank;
import buildcraft.factory.TileAutoWorkbench;
import buildcraft.factory.TileFloodGate;
import buildcraft.factory.TileHopper;
@ -68,6 +66,9 @@ import buildcraft.factory.TileQuarry;
import buildcraft.factory.TileRefinery;
import buildcraft.factory.TileTank;
import buildcraft.factory.network.PacketHandlerFactory;
import buildcraft.factory.schematics.SchematicPump;
import buildcraft.factory.schematics.SchematicRefinery;
import buildcraft.factory.schematics.SchematicTank;
@Mod(name = "BuildCraft Factory", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Factory", dependencies = DefaultProps.DEPENDENCY_CORE)
public class BuildCraftFactory extends BuildCraftMod {
@ -150,6 +151,8 @@ public class BuildCraftFactory extends BuildCraftMod {
SchematicRegistry.registerSchematicBlock(refineryBlock, SchematicRefinery.class);
SchematicRegistry.registerSchematicBlock(tankBlock, SchematicTank.class);
SchematicRegistry.registerSchematicBlock(frameBlock, SchematicIgnoreMeta.class);
SchematicRegistry.registerSchematicBlock(pumpBlock, SchematicPump.class);
SchematicRegistry.registerSchematicBlock(refineryBlock, SchematicRefinery.class);
if (BuildCraftCore.loadDefaultRecipes) {
loadRecipes();

View file

@ -0,0 +1,48 @@
/**
* 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.factory.schematics;
import java.util.LinkedList;
import net.minecraft.item.ItemStack;
import buildcraft.BuildCraftFactory;
import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.SchematicTile;
public class SchematicPump extends SchematicTile {
@Override
public void writeRequirementsToWorld(IBuilderContext context, LinkedList<ItemStack> requirements) {
requirements.add(new ItemStack(BuildCraftFactory.pumpBlock));
}
@Override
public void writeRequirementsToBlueprint(IBuilderContext context, int x, int y, int z) {
}
@Override
public void writeToBlueprint(IBuilderContext context, int x, int y, int z) {
super.writeToBlueprint(context, x, y, z);
tileNBT.removeTag("tank");
tileNBT.removeTag("mjStored");
}
@Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
context.world().setBlock(x, y, z, block, 0, 3);
}
@Override
public BuildingStage getBuildStage() {
return BuildingStage.STANDALONE;
}
}

View file

@ -6,7 +6,7 @@
* 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.factory;
package buildcraft.factory.schematics;
import java.util.LinkedList;
@ -14,11 +14,22 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.BuildCraftFactory;
import buildcraft.api.blueprints.IBuilderContext;
import buildcraft.api.blueprints.SchematicTile;
public class SchematicRefinery extends SchematicTile {
@Override
public void writeRequirementsToWorld(IBuilderContext context, LinkedList<ItemStack> requirements) {
requirements.add(new ItemStack(BuildCraftFactory.refineryBlock));
}
@Override
public void writeRequirementsToBlueprint(IBuilderContext context, int x, int y, int z) {
}
@Override
public void rotateLeft(IBuilderContext context) {
meta = ForgeDirection.values()[meta].getRotation(ForgeDirection.UP).ordinal();
@ -26,32 +37,23 @@ public class SchematicRefinery extends SchematicTile {
@Override
public void writeToBlueprint(IBuilderContext context, int x, int y, int z) {
TileRefinery refinery = (TileRefinery) context.world().getTileEntity(x, y, z);
super.writeToBlueprint(context, x, y, z);
// slot.cpt.setInteger("filter0", refinery.getFilter(0));
// slot.cpt.setInteger("filter1", refinery.getFilter(1));
tileNBT.removeTag("tank1");
tileNBT.removeTag("tank2");
tileNBT.removeTag("result");
tileNBT.removeTag("mjStored");
}
@Override
public void writeToWorld(IBuilderContext context, int x, int y, int z, LinkedList<ItemStack> stacks) {
// to support refineries coming from older blueprints
tileNBT.removeTag("tank1");
tileNBT.removeTag("tank2");
tileNBT.removeTag("result");
tileNBT.removeTag("mjStored");
super.writeToWorld(context, x, y, z, stacks);
TileRefinery refinery = (TileRefinery) context.world().getTileEntity(x, y, z);
int filter0 = tileNBT.getInteger("filter0");
int filter1 = tileNBT.getInteger("filter1");
int filterMeta0 = 0;
int filterMeta1 = 0;
if (tileNBT.hasKey("filterMeta0")) {
filterMeta0 = tileNBT.getInteger("filterMeta0");
}
if (tileNBT.hasKey("filterMeta1")) {
filterMeta1 = tileNBT.getInteger("filterMeta1");
}
// refinery.setFilter(0, filter0, filterMeta0);
// refinery.setFilter(1, filter1, filterMeta1);
}
}

View file

@ -6,7 +6,7 @@
* 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.factory;
package buildcraft.factory.schematics;
import java.util.LinkedList;