add debug messages for schematics and facades (close #2124), improve schematic autodetection
This commit is contained in:
parent
bf9bfc5c50
commit
85e588780f
8 changed files with 112 additions and 23 deletions
|
@ -1,6 +1,7 @@
|
||||||
package buildcraft.api.core;
|
package buildcraft.api.core;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
|
||||||
public class BlockMetaPair implements Comparable<BlockMetaPair> {
|
public class BlockMetaPair implements Comparable<BlockMetaPair> {
|
||||||
private int id, meta;
|
private int id, meta;
|
||||||
|
@ -40,4 +41,13 @@ public class BlockMetaPair implements Comparable<BlockMetaPair> {
|
||||||
return meta - arg.meta;
|
return meta - arg.meta;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
if (this.getBlock() == null) {
|
||||||
|
return "invalid";
|
||||||
|
}
|
||||||
|
|
||||||
|
return Block.blockRegistry.getNameForObject(this.getBlock()) + ":" + (this.meta == OreDictionary.WILDCARD_VALUE ? "*" : this.meta);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ package buildcraft;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
import net.minecraft.entity.item.EntityItemFrame;
|
import net.minecraft.entity.item.EntityItemFrame;
|
||||||
import net.minecraft.entity.item.EntityMinecartChest;
|
import net.minecraft.entity.item.EntityMinecartChest;
|
||||||
|
@ -39,6 +40,7 @@ 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 buildcraft.api.blueprints.BlueprintDeployer;
|
import buildcraft.api.blueprints.BlueprintDeployer;
|
||||||
import buildcraft.api.blueprints.BuilderAPI;
|
import buildcraft.api.blueprints.BuilderAPI;
|
||||||
import buildcraft.api.blueprints.ISchematicRegistry;
|
import buildcraft.api.blueprints.ISchematicRegistry;
|
||||||
|
@ -47,6 +49,7 @@ import buildcraft.api.blueprints.SchematicEntity;
|
||||||
import buildcraft.api.blueprints.SchematicFactory;
|
import buildcraft.api.blueprints.SchematicFactory;
|
||||||
import buildcraft.api.blueprints.SchematicMask;
|
import buildcraft.api.blueprints.SchematicMask;
|
||||||
import buildcraft.api.core.BCLog;
|
import buildcraft.api.core.BCLog;
|
||||||
|
import buildcraft.api.core.BlockMetaPair;
|
||||||
import buildcraft.api.core.JavaTools;
|
import buildcraft.api.core.JavaTools;
|
||||||
import buildcraft.api.filler.FillerManager;
|
import buildcraft.api.filler.FillerManager;
|
||||||
import buildcraft.api.filler.IFillerPattern;
|
import buildcraft.api.filler.IFillerPattern;
|
||||||
|
@ -158,6 +161,8 @@ public class BuildCraftBuilders extends BuildCraftMod {
|
||||||
public static BlueprintDatabase serverDB;
|
public static BlueprintDatabase serverDB;
|
||||||
public static BlueprintDatabase clientDB;
|
public static BlueprintDatabase clientDB;
|
||||||
|
|
||||||
|
public static boolean debugPrintSchematicList = false;
|
||||||
|
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
public void loadConfiguration(FMLPreInitializationEvent evt) {
|
public void loadConfiguration(FMLPreInitializationEvent evt) {
|
||||||
String blueprintServerDir = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL,
|
String blueprintServerDir = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL,
|
||||||
|
@ -187,6 +192,9 @@ public class BuildCraftBuilders extends BuildCraftMod {
|
||||||
for (int i = 0; i < blueprintLibraryInput.length; ++i) {
|
for (int i = 0; i < blueprintLibraryInput.length; ++i) {
|
||||||
blueprintLibraryInput[i] = JavaTools.stripSurroundingQuotes(replacePathVariables(blueprintLibraryInput[i]));
|
blueprintLibraryInput[i] = JavaTools.stripSurroundingQuotes(replacePathVariables(blueprintLibraryInput[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Property printSchematicList = BuildCraftCore.mainConfiguration.get("debug", "blueprints.printSchematicList", false);
|
||||||
|
debugPrintSchematicList = printSchematicList.getBoolean();
|
||||||
|
|
||||||
if (BuildCraftCore.mainConfiguration.hasChanged()) {
|
if (BuildCraftCore.mainConfiguration.hasChanged()) {
|
||||||
BuildCraftCore.mainConfiguration.save();
|
BuildCraftCore.mainConfiguration.save();
|
||||||
|
@ -247,6 +255,20 @@ public class BuildCraftBuilders extends BuildCraftMod {
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
public void postInit(FMLPostInitializationEvent evt) {
|
public void postInit(FMLPostInitializationEvent evt) {
|
||||||
HeuristicBlockDetection.start();
|
HeuristicBlockDetection.start();
|
||||||
|
|
||||||
|
if (debugPrintSchematicList) {
|
||||||
|
try {
|
||||||
|
PrintWriter writer = new PrintWriter("SchematicDebug.txt", "UTF-8");
|
||||||
|
writer.println("*** REGISTERED SCHEMATICS ***");
|
||||||
|
SchematicRegistry reg = ((SchematicRegistry) BuilderAPI.schematicRegistry);
|
||||||
|
for (BlockMetaPair p : reg.schematicBlocks.keySet()) {
|
||||||
|
writer.println(p.toString() + " -> " + reg.schematicBlocks.get(p).clazz.getCanonicalName());
|
||||||
|
}
|
||||||
|
writer.close();
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
|
|
|
@ -139,7 +139,7 @@ public class BuildCraftCore extends BuildCraftMod {
|
||||||
Full, NoDynamic
|
Full, NoDynamic
|
||||||
}
|
}
|
||||||
public static RenderMode render = RenderMode.Full;
|
public static RenderMode render = RenderMode.Full;
|
||||||
public static boolean debugMode = false;
|
public static boolean debugWorldgen = false;
|
||||||
public static boolean modifyWorld = false;
|
public static boolean modifyWorld = false;
|
||||||
public static boolean colorBlindMode = false;
|
public static boolean colorBlindMode = false;
|
||||||
public static boolean dropBrokenBlocks = true; // Set to false to prevent the filler from dropping broken blocks.
|
public static boolean dropBrokenBlocks = true; // Set to false to prevent the filler from dropping broken blocks.
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
*/
|
*/
|
||||||
package buildcraft;
|
package buildcraft;
|
||||||
|
|
||||||
|
import java.io.PrintWriter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -34,6 +35,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
import net.minecraftforge.oredict.RecipeSorter;
|
import net.minecraftforge.oredict.RecipeSorter;
|
||||||
import buildcraft.api.blueprints.BuilderAPI;
|
import buildcraft.api.blueprints.BuilderAPI;
|
||||||
|
import buildcraft.api.core.BlockMetaPair;
|
||||||
import buildcraft.api.core.EnumColor;
|
import buildcraft.api.core.EnumColor;
|
||||||
import buildcraft.api.core.IIconProvider;
|
import buildcraft.api.core.IIconProvider;
|
||||||
import buildcraft.api.core.JavaTools;
|
import buildcraft.api.core.JavaTools;
|
||||||
|
@ -51,6 +53,7 @@ import buildcraft.core.InterModComms;
|
||||||
import buildcraft.core.ItemBuildCraft;
|
import buildcraft.core.ItemBuildCraft;
|
||||||
import buildcraft.core.PowerMode;
|
import buildcraft.core.PowerMode;
|
||||||
import buildcraft.core.Version;
|
import buildcraft.core.Version;
|
||||||
|
import buildcraft.core.blueprints.SchematicRegistry;
|
||||||
import buildcraft.core.network.BuildCraftChannelHandler;
|
import buildcraft.core.network.BuildCraftChannelHandler;
|
||||||
import buildcraft.core.proxy.CoreProxy;
|
import buildcraft.core.proxy.CoreProxy;
|
||||||
import buildcraft.silicon.ItemRedstoneChipset.Chipset;
|
import buildcraft.silicon.ItemRedstoneChipset.Chipset;
|
||||||
|
@ -217,6 +220,8 @@ public class BuildCraftTransport extends BuildCraftMod {
|
||||||
public static IActionInternal actionExtractionPresetYellow = new ActionExtractionPreset(EnumColor.YELLOW);
|
public static IActionInternal actionExtractionPresetYellow = new ActionExtractionPreset(EnumColor.YELLOW);
|
||||||
public static IActionInternal[] actionValve = new IActionInternal[4];
|
public static IActionInternal[] actionValve = new IActionInternal[4];
|
||||||
|
|
||||||
|
public static boolean debugPrintFacadeList = false;
|
||||||
|
|
||||||
private static LinkedList<PipeRecipe> pipeRecipes = new LinkedList<PipeRecipe>();
|
private static LinkedList<PipeRecipe> pipeRecipes = new LinkedList<PipeRecipe>();
|
||||||
|
|
||||||
public IIconProvider pipeIconProvider = new PipeIconProvider();
|
public IIconProvider pipeIconProvider = new PipeIconProvider();
|
||||||
|
@ -281,6 +286,8 @@ public class BuildCraftTransport extends BuildCraftMod {
|
||||||
Property baseFlowRate = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "pipes.fluids.baseFlowRate", DefaultProps.PIPES_FLUIDS_BASE_FLOW_RATE);
|
Property baseFlowRate = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "pipes.fluids.baseFlowRate", DefaultProps.PIPES_FLUIDS_BASE_FLOW_RATE);
|
||||||
pipeFluidsBaseFlowRate = baseFlowRate.getInt();
|
pipeFluidsBaseFlowRate = baseFlowRate.getInt();
|
||||||
|
|
||||||
|
Property printFacadeList = BuildCraftCore.mainConfiguration.get("debug", "facades.printFacadeList", false);
|
||||||
|
debugPrintFacadeList = printFacadeList.getBoolean();
|
||||||
|
|
||||||
Property exclusionItemList = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "woodenPipe.item.exclusion", new String[0]);
|
Property exclusionItemList = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "woodenPipe.item.exclusion", new String[0]);
|
||||||
|
|
||||||
|
@ -505,6 +512,22 @@ public class BuildCraftTransport extends BuildCraftMod {
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
public void postInit(FMLPostInitializationEvent evt) {
|
public void postInit(FMLPostInitializationEvent evt) {
|
||||||
facadeItem.initialize();
|
facadeItem.initialize();
|
||||||
|
|
||||||
|
if (debugPrintFacadeList) {
|
||||||
|
try {
|
||||||
|
PrintWriter writer = new PrintWriter("FacadeDebug.txt", "UTF-8");
|
||||||
|
writer.println("*** REGISTERED FACADES ***");
|
||||||
|
for (ItemStack stack : facadeItem.allFacades) {
|
||||||
|
if (facadeItem.getBlocksForFacade(stack).length > 0) {
|
||||||
|
BlockMetaPair bmp = new BlockMetaPair(facadeItem.getBlocksForFacade(stack)[0], facadeItem.getMetaValuesForFacade(stack)[0]);
|
||||||
|
writer.println(bmp.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writer.close();
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadRecipes() {
|
public void loadRecipes() {
|
||||||
|
|
|
@ -1,15 +1,20 @@
|
||||||
package buildcraft.builders;
|
package buildcraft.builders;
|
||||||
|
|
||||||
|
import java.util.BitSet;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.crafting.CraftingManager;
|
||||||
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
import net.minecraftforge.fluids.FluidRegistry;
|
import net.minecraftforge.fluids.FluidRegistry;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
import buildcraft.api.blueprints.SchematicBlock;
|
import buildcraft.api.blueprints.SchematicBlock;
|
||||||
import buildcraft.api.blueprints.SchematicFluid;
|
import buildcraft.api.blueprints.SchematicFluid;
|
||||||
import buildcraft.builders.schematics.SchematicBlockCreative;
|
import buildcraft.builders.schematics.SchematicBlockCreative;
|
||||||
|
import buildcraft.builders.schematics.SchematicTileCreative;
|
||||||
import buildcraft.core.blueprints.SchematicRegistry;
|
import buildcraft.core.blueprints.SchematicRegistry;
|
||||||
|
|
||||||
public final class HeuristicBlockDetection {
|
public final class HeuristicBlockDetection {
|
||||||
|
@ -18,7 +23,24 @@ public final class HeuristicBlockDetection {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static BitSet craftableBlockList = new BitSet(65536);
|
||||||
|
|
||||||
public static void start() {
|
public static void start() {
|
||||||
|
// Initialize craftableBlockList
|
||||||
|
for (Object or : CraftingManager.getInstance().getRecipeList()) {
|
||||||
|
if (or instanceof IRecipe) {
|
||||||
|
IRecipe recipe = ((IRecipe) or);
|
||||||
|
if (recipe.getRecipeOutput() != null && recipe.getRecipeOutput().getItem() != null &&
|
||||||
|
recipe.getRecipeOutput().getItem() instanceof ItemBlock) {
|
||||||
|
int pos = recipe.getRecipeOutput().getItemDamage() & 15;
|
||||||
|
pos |= Block.getIdFromBlock(Block.getBlockFromItem(recipe.getRecipeOutput().getItem())) << 4;
|
||||||
|
if (pos >= 0 && pos < 65536) {
|
||||||
|
craftableBlockList.set(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Register fluids
|
// Register fluids
|
||||||
for (Fluid f : FluidRegistry.getRegisteredFluids().values()) {
|
for (Fluid f : FluidRegistry.getRegisteredFluids().values()) {
|
||||||
SchematicRegistry.INSTANCE.registerSchematicBlock(f.getBlock(), SchematicFluid.class, new FluidStack(f, 1000));
|
SchematicRegistry.INSTANCE.registerSchematicBlock(f.getBlock(), SchematicFluid.class, new FluidStack(f, 1000));
|
||||||
|
@ -33,27 +55,34 @@ public final class HeuristicBlockDetection {
|
||||||
|
|
||||||
for (int meta = 0; meta < 16; meta++) {
|
for (int meta = 0; meta < 16; meta++) {
|
||||||
if (!SchematicRegistry.INSTANCE.isSupported(block, meta)) {
|
if (!SchematicRegistry.INSTANCE.isSupported(block, meta)) {
|
||||||
|
if (block.hasTileEntity(meta)) {
|
||||||
|
// All tiles are registered as creative only.
|
||||||
|
// This is helpful for example for server admins.
|
||||||
|
SchematicRegistry.INSTANCE.registerSchematicBlock(block, meta, SchematicTileCreative.class);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
boolean creativeOnly = false;
|
boolean creativeOnly = false;
|
||||||
|
|
||||||
// Stops dupes with (for instance) ore blocks
|
if (!canCraft(block, meta)) {
|
||||||
try {
|
|
||||||
if (block.getItemDropped(meta, null, 0) != Item.getItemFromBlock(block)) {
|
// Does it drop a different block type?
|
||||||
creativeOnly = true;
|
try {
|
||||||
|
if (block.getItemDropped(meta, null, 0) != Item.getItemFromBlock(block)) {
|
||||||
|
creativeOnly = true;
|
||||||
|
}
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
// The "null" for Random in getItemDropped stops blocks
|
||||||
|
// depending on an RNG for deciding the dropped item
|
||||||
|
// from being autodetected.
|
||||||
}
|
}
|
||||||
} catch (NullPointerException e) {
|
|
||||||
// The "null" for Random in getItemDropped stops blocks
|
|
||||||
// depending on an RNG for deciding the dropped item
|
|
||||||
// from being autodetected.
|
|
||||||
}
|
|
||||||
if (block.hasTileEntity(meta)) {
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (creativeOnly) {
|
if (creativeOnly) {
|
||||||
SchematicRegistry.INSTANCE.registerSchematicBlock(block, meta, SchematicBlock.class);
|
|
||||||
} else {
|
|
||||||
SchematicRegistry.INSTANCE.registerSchematicBlock(block, meta, SchematicBlockCreative.class);
|
SchematicRegistry.INSTANCE.registerSchematicBlock(block, meta, SchematicBlockCreative.class);
|
||||||
|
} else {
|
||||||
|
SchematicRegistry.INSTANCE.registerSchematicBlock(block, meta, SchematicBlock.class);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -62,4 +91,9 @@ public final class HeuristicBlockDetection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean canCraft(Block block, int meta) {
|
||||||
|
int pos = Block.getIdFromBlock(block) << 4 | meta;
|
||||||
|
return craftableBlockList.get(pos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,10 @@ public final class SchematicRegistry implements ISchematicRegistry {
|
||||||
|
|
||||||
public static SchematicRegistry INSTANCE = new SchematicRegistry();
|
public static SchematicRegistry INSTANCE = new SchematicRegistry();
|
||||||
|
|
||||||
private final HashMap<BlockMetaPair, SchematicConstructor> schematicBlocks =
|
public final HashMap<BlockMetaPair, SchematicConstructor> schematicBlocks =
|
||||||
new HashMap<BlockMetaPair, SchematicConstructor>();
|
new HashMap<BlockMetaPair, SchematicConstructor>();
|
||||||
|
|
||||||
private final HashMap<Class<? extends Entity>, SchematicConstructor> schematicEntities = new HashMap<Class<? extends Entity>, SchematicConstructor>();
|
public final HashMap<Class<? extends Entity>, SchematicConstructor> schematicEntities = new HashMap<Class<? extends Entity>, SchematicConstructor>();
|
||||||
|
|
||||||
private final HashSet<String> modsForbidden = new HashSet<String>();
|
private final HashSet<String> modsForbidden = new HashSet<String>();
|
||||||
private final HashSet<String> blocksForbidden = new HashSet<String>();
|
private final HashSet<String> blocksForbidden = new HashSet<String>();
|
||||||
|
@ -42,7 +42,7 @@ public final class SchematicRegistry implements ISchematicRegistry {
|
||||||
private SchematicRegistry() {
|
private SchematicRegistry() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SchematicConstructor {
|
public class SchematicConstructor {
|
||||||
public final Class<? extends Schematic> clazz;
|
public final Class<? extends Schematic> clazz;
|
||||||
public final Object[] params;
|
public final Object[] params;
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ public final class OilPopulate {
|
||||||
bonus *= BuildCraftEnergy.oilWellScalar;
|
bonus *= BuildCraftEnergy.oilWellScalar;
|
||||||
if (BuildCraftEnergy.excessiveOilBiomeIDs.contains(biome.biomeID)) {
|
if (BuildCraftEnergy.excessiveOilBiomeIDs.contains(biome.biomeID)) {
|
||||||
bonus *= 30.0;
|
bonus *= 30.0;
|
||||||
} else if (BuildCraftCore.debugMode) {
|
} else if (BuildCraftCore.debugWorldgen) {
|
||||||
bonus *= 20.0;
|
bonus *= 20.0;
|
||||||
}
|
}
|
||||||
GenType type = GenType.NONE;
|
GenType type = GenType.NONE;
|
||||||
|
@ -171,7 +171,7 @@ public final class OilPopulate {
|
||||||
}
|
}
|
||||||
generateSurfaceDeposit(world, rand, biome, wellX, groundLevel, wellZ, lakeRadius);
|
generateSurfaceDeposit(world, rand, biome, wellX, groundLevel, wellZ, lakeRadius);
|
||||||
|
|
||||||
boolean makeSpring = type == GenType.LARGE && BuildCraftEnergy.spawnOilSprings && BuildCraftCore.springBlock != null && (BuildCraftCore.debugMode || rand.nextDouble() <= 0.25);
|
boolean makeSpring = type == GenType.LARGE && BuildCraftEnergy.spawnOilSprings && BuildCraftCore.springBlock != null && (BuildCraftCore.debugWorldgen || rand.nextDouble() <= 0.25);
|
||||||
|
|
||||||
// Generate Spout
|
// Generate Spout
|
||||||
int baseY;
|
int baseY;
|
||||||
|
|
|
@ -108,7 +108,7 @@ public class BlockTank extends BlockBuildCraft {
|
||||||
if (liquid != null) {
|
if (liquid != null) {
|
||||||
int qty = tank.fill(ForgeDirection.UNKNOWN, liquid, true);
|
int qty = tank.fill(ForgeDirection.UNKNOWN, liquid, true);
|
||||||
|
|
||||||
if (qty != 0 && !BuildCraftCore.debugMode && !entityplayer.capabilities.isCreativeMode) {
|
if (qty != 0 && !BuildCraftCore.debugWorldgen && !entityplayer.capabilities.isCreativeMode) {
|
||||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, InvUtils.consumeItem(current));
|
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, InvUtils.consumeItem(current));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ public class BlockTank extends BlockBuildCraft {
|
||||||
liquid = FluidContainerRegistry.getFluidForFilledItem(filled);
|
liquid = FluidContainerRegistry.getFluidForFilledItem(filled);
|
||||||
|
|
||||||
if (liquid != null) {
|
if (liquid != null) {
|
||||||
if (!BuildCraftCore.debugMode && !entityplayer.capabilities.isCreativeMode) {
|
if (!BuildCraftCore.debugWorldgen && !entityplayer.capabilities.isCreativeMode) {
|
||||||
if (current.stackSize > 1) {
|
if (current.stackSize > 1) {
|
||||||
if (!entityplayer.inventory.addItemStackToInventory(filled)) {
|
if (!entityplayer.inventory.addItemStackToInventory(filled)) {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue