minor tweaks to builder algorithmics
This commit is contained in:
parent
9e397870a2
commit
708b9b63cd
2 changed files with 16 additions and 16 deletions
|
@ -29,13 +29,13 @@ import buildcraft.api.blueprints.SchematicBlock;
|
||||||
import buildcraft.api.blueprints.SchematicEntity;
|
import buildcraft.api.blueprints.SchematicEntity;
|
||||||
import buildcraft.api.core.BCLog;
|
import buildcraft.api.core.BCLog;
|
||||||
import buildcraft.api.core.BuildCraftAPI;
|
import buildcraft.api.core.BuildCraftAPI;
|
||||||
|
import buildcraft.api.core.IInvSlot;
|
||||||
import buildcraft.api.core.StackKey;
|
import buildcraft.api.core.StackKey;
|
||||||
import buildcraft.builders.TileAbstractBuilder;
|
import buildcraft.builders.TileAbstractBuilder;
|
||||||
import buildcraft.core.BlockIndex;
|
import buildcraft.core.BlockIndex;
|
||||||
import buildcraft.core.blueprints.BuildingSlotBlock.Mode;
|
import buildcraft.core.blueprints.BuildingSlotBlock.Mode;
|
||||||
import buildcraft.core.inventory.InventoryCopy;
|
import buildcraft.core.inventory.InventoryCopy;
|
||||||
import buildcraft.core.inventory.InventoryIterator;
|
import buildcraft.core.inventory.InventoryIterator;
|
||||||
import buildcraft.api.core.IInvSlot;
|
|
||||||
import buildcraft.core.inventory.StackHelper;
|
import buildcraft.core.inventory.StackHelper;
|
||||||
import buildcraft.core.utils.BlockUtil;
|
import buildcraft.core.utils.BlockUtil;
|
||||||
|
|
||||||
|
@ -222,16 +222,18 @@ public class BptBuilderBlueprint extends BptBuilderBase {
|
||||||
} else {
|
} else {
|
||||||
if (setupForDestroy(builder, context, slot)) {
|
if (setupForDestroy(builder, context, slot)) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
postProcessing.add(slot);
|
|
||||||
clearedLocations.add(new BlockIndex(slot.x,
|
clearedLocations.add(new BlockIndex(slot.x,
|
||||||
slot.y, slot.z));
|
slot.y, slot.z));
|
||||||
return slot;
|
return slot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (!slot.schematic.doNotBuild()) {
|
} else if (!slot.schematic.doNotBuild()) {
|
||||||
if (BuildCraftAPI.isSoftBlock(world, slot.x, slot.y,
|
|
||||||
slot.z)) {
|
|
||||||
if (checkRequirements(builder, slot.schematic)) {
|
if (checkRequirements(builder, slot.schematic)) {
|
||||||
|
// At this stage, regardless of the fact that the
|
||||||
|
// block can actually be built or not, we'll try.
|
||||||
|
// When the item reaches the actual block, we'll
|
||||||
|
// verify that the location is indeed clear, and
|
||||||
|
// avoid building otherwise.
|
||||||
useRequirements(builder, slot);
|
useRequirements(builder, slot);
|
||||||
|
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
|
@ -240,11 +242,6 @@ public class BptBuilderBlueprint extends BptBuilderBase {
|
||||||
slot.y, slot.z));
|
slot.y, slot.z));
|
||||||
return slot;
|
return slot;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// the block is not soft anymore, we can't build
|
|
||||||
// here. Forget about it.
|
|
||||||
iterator.remove();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ import buildcraft.api.blueprints.MappingRegistry;
|
||||||
import buildcraft.api.blueprints.SchematicBlockBase;
|
import buildcraft.api.blueprints.SchematicBlockBase;
|
||||||
import buildcraft.api.blueprints.SchematicFactory;
|
import buildcraft.api.blueprints.SchematicFactory;
|
||||||
import buildcraft.api.blueprints.SchematicMask;
|
import buildcraft.api.blueprints.SchematicMask;
|
||||||
|
import buildcraft.api.core.BuildCraftAPI;
|
||||||
import buildcraft.api.core.Position;
|
import buildcraft.api.core.Position;
|
||||||
|
|
||||||
public class BuildingSlotBlock extends BuildingSlot implements Comparable<BuildingSlotBlock> {
|
public class BuildingSlotBlock extends BuildingSlot implements Comparable<BuildingSlotBlock> {
|
||||||
|
@ -122,8 +123,10 @@ public class BuildingSlotBlock extends BuildingSlot implements Comparable<Buildi
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeCompleted (IBuilderContext context, double complete) {
|
public void writeCompleted (IBuilderContext context, double complete) {
|
||||||
|
if (BuildCraftAPI.isSoftBlock(context.world(), x, y, z)) {
|
||||||
getSchematic().writeCompleted(context, x, y, z, complete);
|
getSchematic().writeCompleted(context, x, y, z, complete);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAlreadyBuilt(IBuilderContext context) {
|
public boolean isAlreadyBuilt(IBuilderContext context) {
|
||||||
|
|
Loading…
Reference in a new issue