cleanup, fix #3102
This commit is contained in:
parent
aef5e7a628
commit
eebd393fc2
8 changed files with 49 additions and 75 deletions
|
@ -50,41 +50,53 @@ public final class BCRegistry {
|
|||
return false;
|
||||
}
|
||||
|
||||
private boolean isInvalidRecipeElement(Object o) {
|
||||
if (o == null) {
|
||||
return true;
|
||||
}
|
||||
if (o instanceof Block && !Utils.isRegistered((Block) o)) {
|
||||
return true;
|
||||
}
|
||||
if (o instanceof Item && !Utils.isRegistered((Item) o)) {
|
||||
return true;
|
||||
}
|
||||
if (o instanceof ItemStack && !Utils.isRegistered((ItemStack) o)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
public void registerTileEntity(Class clas, String ident) {
|
||||
GameRegistry.registerTileEntity(CompatHooks.INSTANCE.getTile(clas), ident);
|
||||
}
|
||||
|
||||
public void addCraftingRecipe(ItemStack result, Object... recipe) {
|
||||
if (isInvalidRecipeElement(result)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Object o : recipe) {
|
||||
if (o == null) {
|
||||
return;
|
||||
}
|
||||
if (o instanceof Block && !Utils.isRegistered((Block) o)) {
|
||||
return;
|
||||
}
|
||||
if (o instanceof Item && !Utils.isRegistered((Item) o)) {
|
||||
return;
|
||||
}
|
||||
if (o instanceof ItemStack && !Utils.isRegistered((ItemStack) o)) {
|
||||
if (isInvalidRecipeElement(o)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(result, recipe));
|
||||
}
|
||||
|
||||
public void addShapelessRecipe(ItemStack result, Object... recipe) {
|
||||
if (isInvalidRecipeElement(result)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Object o : recipe) {
|
||||
if (o instanceof Block && Block.getIdFromBlock((Block) o) < 0) {
|
||||
return;
|
||||
}
|
||||
if (o instanceof Item && Item.getIdFromItem((Item) o) < 0) {
|
||||
return;
|
||||
}
|
||||
if (o instanceof ItemStack && ((ItemStack) o).getItem() == null) {
|
||||
if (isInvalidRecipeElement(o)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(result, recipe));
|
||||
}
|
||||
|
||||
|
|
|
@ -120,9 +120,6 @@ public class EntityRobot extends EntityRobotBase implements
|
|||
public float itemActiveStage = 0;
|
||||
public long lastUpdateTime = 0;
|
||||
|
||||
private SafeTimeTracker expensiveVerificationsTracker = new SafeTimeTracker(10);
|
||||
private boolean isMovingOutOfStuck;
|
||||
|
||||
private DockingStation currentDockingStation;
|
||||
private List<ItemStack> wearables = new ArrayList<ItemStack>();
|
||||
|
||||
|
@ -360,44 +357,6 @@ public class EntityRobot extends EntityRobotBase implements
|
|||
getRegistry().killRobot(this);
|
||||
}
|
||||
|
||||
// The commented out part is the part which unstucks robots.
|
||||
// It has been known to cause a lot of issues in 7.1.11.
|
||||
// If you want to try and fix it, go ahead.
|
||||
// Right now it will simply stop them from moving.
|
||||
|
||||
/*
|
||||
if (expensiveVerificationsTracker.markTimeIfDelay(worldObj)) {
|
||||
int collisions = 0;
|
||||
|
||||
int bx = (int) Math.floor(posX);
|
||||
int by = (int) Math.floor(posY);
|
||||
int bz = (int) Math.floor(posZ);
|
||||
|
||||
if (by >= 0 && by < worldObj.getActualHeight() && !BuildCraftAPI.isSoftBlock(worldObj, bx, by, bz)) {
|
||||
List clist = new ArrayList();
|
||||
|
||||
Block block = worldObj.getBlock(bx, by, bz);
|
||||
block.addCollisionBoxesToList(worldObj, bx, by, bz, getBoundingBox(), clist, this);
|
||||
collisions = clist.size();
|
||||
}
|
||||
|
||||
if (collisions > 0) {
|
||||
isMovingOutOfStuck = true;
|
||||
motionX = 0.0F;
|
||||
motionY = 0.05F;
|
||||
motionZ = 0.0F;
|
||||
} else if (isMovingOutOfStuck) {
|
||||
isMovingOutOfStuck = false;
|
||||
|
||||
board.abortDelegateAI();
|
||||
|
||||
motionY = 0.0F;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!isMovingOutOfStuck) {
|
||||
*/
|
||||
if (linkedDockingStation == null || linkedDockingStation.isInitialized()) {
|
||||
this.worldObj.theProfiler.startSection("bcRobotAI");
|
||||
mainAI.cycle();
|
||||
|
|
|
@ -173,8 +173,8 @@ public class FacadePluggable extends PipePluggable implements IFacadePluggable {
|
|||
int flags = data.readUnsignedByte();
|
||||
|
||||
meta = flags & 0x0F;
|
||||
transparent = (flags & 0x80) > 0;
|
||||
renderAsHollow = (flags & 0x40) > 0;
|
||||
transparent = (flags & 0x80) != 0;
|
||||
renderAsHollow = (flags & 0x40) != 0;
|
||||
}
|
||||
|
||||
private void prepareStates() {
|
||||
|
|
|
@ -23,15 +23,18 @@ public class PipePluggableState implements ISerializable {
|
|||
|
||||
public void setPluggables(PipePluggable[] pluggables) {
|
||||
this.pluggables = pluggables;
|
||||
this.pluggableMatrix.clean();
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
this.pluggableMatrix.setConnected(dir, pluggables[dir.ordinal()] != null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(ByteBuf data) {
|
||||
this.pluggableMatrix.clean();
|
||||
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
this.pluggableMatrix.setConnected(dir, pluggables[dir.ordinal()] != null);
|
||||
}
|
||||
|
||||
this.pluggableMatrix.writeData(data);
|
||||
|
||||
for (PipePluggable p : pluggables) {
|
||||
if (p != null) {
|
||||
data.writeShort(PipeManager.pipePluggables.indexOf(p.getClass()));
|
||||
|
@ -43,6 +46,7 @@ public class PipePluggableState implements ISerializable {
|
|||
@Override
|
||||
public void readData(ByteBuf data) {
|
||||
this.pluggableMatrix.readData(data);
|
||||
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
if (this.pluggableMatrix.isConnected(dir)) {
|
||||
try {
|
||||
|
|
|
@ -169,7 +169,7 @@ public class LensPluggable extends PipePluggable {
|
|||
@Override
|
||||
public void readData(ByteBuf data) {
|
||||
int flags = data.readUnsignedByte();
|
||||
color = (flags & 31) - 1;
|
||||
color = (flags & 0x1F) - 1;
|
||||
isFilter = (flags & 0x20) > 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,19 +14,20 @@ public class BitSetCodec {
|
|||
public byte encode(BitSet set) {
|
||||
byte result = 0;
|
||||
for (byte i = 0; i < 8; i++) {
|
||||
result <<= 1;
|
||||
result |= set.get(i) ? 1 : 0;
|
||||
result |= set.get(i) ? (1 << i) : 0;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void decode(byte data, BitSet target) {
|
||||
byte localData = data;
|
||||
int t = 1;
|
||||
|
||||
target.clear();
|
||||
|
||||
for (byte i = 0; i < 8; i++) {
|
||||
target.set(7 - i, (localData & 1) != 0);
|
||||
localData >>= 1;
|
||||
target.set(i, (localData & t) != 0);
|
||||
t <<= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,14 +37,14 @@ public class TextureMatrix {
|
|||
}
|
||||
|
||||
public void writeData(ByteBuf data) {
|
||||
for (int iconIndexe : iconIndexes) {
|
||||
data.writeByte(iconIndexe);
|
||||
for (int iconIndex : iconIndexes) {
|
||||
data.writeByte(iconIndex);
|
||||
}
|
||||
}
|
||||
|
||||
public void readData(ByteBuf data) {
|
||||
for (int i = 0; i < iconIndexes.length; i++) {
|
||||
int icon = data.readByte();
|
||||
int icon = data.readUnsignedByte();
|
||||
if (iconIndexes[i] != icon) {
|
||||
iconIndexes[i] = icon;
|
||||
dirty = true;
|
||||
|
|
|
@ -17,8 +17,6 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||
import buildcraft.api.transport.PipeWire;
|
||||
|
||||
public class WireMatrix {
|
||||
|
||||
//private final boolean[] _hasWire = new boolean[IPipe.WireColor.values().length];
|
||||
private final BitSet hasWire = new BitSet(PipeWire.values().length);
|
||||
private final BitSetCodec bitSetCodec = new BitSetCodec();
|
||||
|
||||
|
@ -94,7 +92,7 @@ public class WireMatrix {
|
|||
bitSetCodec.decode(data.readByte(), hasWire);
|
||||
for (int i = 0; i < PipeWire.values().length; i++) {
|
||||
wires[i].readData(data);
|
||||
wireIconIndex[i] = data.readByte();
|
||||
wireIconIndex[i] = data.readUnsignedByte();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue