Skip to content

Commit 73aae2d

Browse files
committed
BuildCraftCompat 7.1.0
1 parent 86016a3 commit 73aae2d

10 files changed

Lines changed: 83 additions & 19 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ apply plugin: 'forge' // adds the forge dependency
5050
apply plugin: 'maven' // for uploading to a maven repo
5151
// apply plugin: 'checkstyle'
5252

53-
version = "7.0.12"
53+
version = "7.1.0"
5454
group = "com.mod-buildcraft-compat"
5555
archivesBaseName = "buildcraft-compat" // the name that all artifacts will use as a base. artifacts names follow this pattern: [baseName]-[appendix]-[version]-[classifier].[extension]
5656

changelog/7.1.0

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* Updated to BuildCraft 7.1.3

common/buildcraft/compat/immersiveengineering/SchematicIESupported.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,5 @@
33
import buildcraft.api.blueprints.Schematic;
44

55
public class SchematicIESupported extends SchematicIEBase {
6-
@Override
7-
public Schematic.BuildingStage getBuildStage() {
8-
return Schematic.BuildingStage.SUPPORTED;
9-
}
6+
// TODO
107
}

common/buildcraft/compat/immibis/SchematicTileMicroblocks.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.ArrayList;
44
import java.util.LinkedList;
5+
import java.util.Set;
56

67
import net.minecraft.entity.player.EntityPlayer;
78
import net.minecraft.item.ItemStack;
@@ -16,6 +17,7 @@
1617
import buildcraft.api.blueprints.SchematicTile;
1718
import buildcraft.api.blueprints.Translation;
1819
import buildcraft.api.core.BCLog;
20+
import buildcraft.api.core.BlockIndex;
1921
import buildcraft.api.core.IInvSlot;
2022
import buildcraft.api.core.JavaTools;
2123
import buildcraft.core.blueprints.SchematicRegistry;
@@ -209,6 +211,11 @@ public int buildTime() {
209211
return wrapped.buildTime();
210212
}
211213

214+
@Override
215+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
216+
return wrapped.getPrerequisiteBlocks(context);
217+
}
218+
212219
@Override
213220
public void storeRequirements(IBuilderContext context, int x, int y, int z) {
214221
wrapped.storeRequirements(context, x, y, z);

common/buildcraft/compat/railcraft/SchematicRCTrack.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
package buildcraft.compat.railcraft;
22

33
import java.util.LinkedList;
4+
import java.util.Set;
5+
6+
import com.google.common.collect.Sets;
47

58
import net.minecraft.item.ItemStack;
69
import net.minecraft.tileentity.TileEntity;
710

11+
import net.minecraftforge.common.util.ForgeDirection;
12+
813
import buildcraft.api.blueprints.IBuilderContext;
914
import buildcraft.api.blueprints.SchematicTile;
15+
import buildcraft.api.core.BlockIndex;
1016

1117
public class SchematicRCTrack extends SchematicTile {
1218
private static final int[] shiftMatrix = {1, 0, 5, 4, 2, 3, 7, 8, 9, 6};
@@ -51,4 +57,9 @@ public boolean isAlreadyBuilt(IBuilderContext context, int x, int y, int z) {
5157
public void postProcessing(IBuilderContext context, int x, int y, int z) {
5258
context.world().setBlockMetadataWithNotify(x, y, z, this.meta, 3);
5359
}
60+
61+
@Override
62+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
63+
return Sets.newHashSet(new BlockIndex[]{RELATIVE_INDEXES[ForgeDirection.DOWN.ordinal()]});
64+
}
5465
}
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
package buildcraft.compat.railcraft;
22

3+
import java.util.Set;
4+
5+
import com.google.common.collect.Sets;
6+
7+
import buildcraft.api.blueprints.IBuilderContext;
8+
import buildcraft.api.core.BlockIndex;
39
import buildcraft.core.builders.schematics.SchematicRotateMeta;
410

511
public class SchematicRCTrackElevator extends SchematicRotateMeta {
@@ -8,7 +14,11 @@ public SchematicRCTrackElevator() {
814
}
915

1016
@Override
11-
public BuildingStage getBuildStage() {
12-
return BuildingStage.SUPPORTED;
17+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
18+
int side = meta & 7;
19+
if (side >= 2 && side <= 5) {
20+
return Sets.newHashSet(new BlockIndex[]{RELATIVE_INDEXES[side ^ 1]});
21+
}
22+
return null;
1323
}
1424
}

common/buildcraft/compat/redlogic/SchematicRLButton.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package buildcraft.compat.redlogic;
22

33
import java.lang.reflect.Method;
4+
import java.util.Set;
5+
6+
import com.google.common.collect.Sets;
47

58
import net.minecraft.item.ItemStack;
69
import net.minecraft.tileentity.TileEntity;
710

811
import buildcraft.api.blueprints.IBuilderContext;
912
import buildcraft.api.blueprints.SchematicTile;
13+
import buildcraft.api.core.BlockIndex;
1014

1115
public class SchematicRLButton extends SchematicTile {
1216
private static final byte[] shiftMatrix = {0, 1, 5, 4, 2, 3, 6, 7};
@@ -38,7 +42,11 @@ public void storeRequirements(IBuilderContext context, int x, int y, int z) {
3842

3943
}
4044

41-
public BuildingStage getBuildStage() {
42-
return BuildingStage.SUPPORTED;
45+
@Override
46+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
47+
if (tileNBT.hasKey("side")) {
48+
return Sets.newHashSet(new BlockIndex[]{RELATIVE_INDEXES[tileNBT.getByte("side") & 7]});
49+
}
50+
return null;
4351
}
4452
}

common/buildcraft/compat/redlogic/SchematicRLGate.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package buildcraft.compat.redlogic;
22

3+
import java.util.Set;
4+
5+
import com.google.common.collect.Sets;
6+
37
import buildcraft.api.blueprints.IBuilderContext;
48
import buildcraft.api.blueprints.SchematicTile;
9+
import buildcraft.api.core.BlockIndex;
510

611
public class SchematicRLGate extends SchematicTile {
712
private static final byte[] shiftMatrix = {0, 1, 5, 4, 2, 3, 6};
@@ -18,6 +23,17 @@ public void rotateLeft(IBuilderContext context) {
1823
}
1924
}
2025

26+
@Override
27+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
28+
if (tileNBT.hasKey("side")) {
29+
return Sets.newHashSet(new BlockIndex[]{RELATIVE_INDEXES[tileNBT.getByte("side") & 7]});
30+
}
31+
if (tileNBT.hasKey("front")) {
32+
return Sets.newHashSet(new BlockIndex[]{RELATIVE_INDEXES[tileNBT.getByte("front") & 7]});
33+
}
34+
return null;
35+
}
36+
2137
@Override
2238
public void initializeFromObjectAt(IBuilderContext context, int x, int y, int z) {
2339
super.initializeFromObjectAt(context, x, y, z);
@@ -30,9 +46,4 @@ public void initializeFromObjectAt(IBuilderContext context, int x, int y, int z)
3046
tileNBT.removeTag("prevRenderState");
3147
}
3248
}
33-
34-
@Override
35-
public BuildingStage getBuildStage() {
36-
return BuildingStage.SUPPORTED;
37-
}
3849
}

common/buildcraft/compat/redlogic/SchematicRLLampNonCube.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package buildcraft.compat.redlogic;
22

3+
import java.util.Set;
4+
5+
import com.google.common.collect.Sets;
6+
37
import net.minecraft.item.ItemStack;
48
import net.minecraft.util.MovingObjectPosition;
59
import net.minecraft.util.Vec3;
610

711
import buildcraft.api.blueprints.IBuilderContext;
812
import buildcraft.api.blueprints.SchematicTile;
13+
import buildcraft.api.core.BlockIndex;
914

1015
public class SchematicRLLampNonCube extends SchematicTile {
1116
private static final byte[] shiftMatrix = {0, 1, 5, 4, 2, 3, 6, 7};
@@ -20,10 +25,14 @@ public void rotateLeft(IBuilderContext context) {
2025
}
2126

2227
@Override
23-
public BuildingStage getBuildStage() {
24-
return BuildingStage.SUPPORTED;
28+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
29+
if (tileNBT != null) {
30+
int meta = tileNBT.getShort("lamp");
31+
int side = (meta >> 5) & 7;
32+
return Sets.newHashSet(new BlockIndex[]{RELATIVE_INDEXES[side]});
33+
}
34+
return null;
2535
}
26-
2736
@Override
2837
public void storeRequirements(IBuilderContext context, int x, int y, int z) {
2938
if (this.block != null) {

common/buildcraft/compat/redlogic/SchematicRLWire.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package buildcraft.compat.redlogic;
22

3+
import java.util.HashSet;
34
import java.util.LinkedList;
5+
import java.util.Set;
46

57
import net.minecraft.item.ItemStack;
68
import net.minecraft.nbt.NBTTagCompound;
79

810
import buildcraft.api.blueprints.IBuilderContext;
911
import buildcraft.api.blueprints.SchematicTile;
12+
import buildcraft.api.core.BlockIndex;
1013
import buildcraft.compat.CompatUtils;
1114

1215
public class SchematicRLWire extends SchematicTile {
@@ -78,8 +81,15 @@ public void placeInWorld(IBuilderContext context, int x, int y, int z, LinkedLis
7881
}
7982

8083
@Override
81-
public BuildingStage getBuildStage() {
82-
return BuildingStage.SUPPORTED;
84+
public Set<BlockIndex> getPrerequisiteBlocks(IBuilderContext context) {
85+
Set<BlockIndex> relativeIndexes = new HashSet<BlockIndex>();
86+
byte mask = tileNBT.getByte("mask");
87+
for (int i = 0; i < 6; i++) {
88+
if ((mask & (1 << i)) != 0) {
89+
relativeIndexes.add(RELATIVE_INDEXES[i]);
90+
}
91+
}
92+
return relativeIndexes;
8393
}
8494

8595
@Override

0 commit comments

Comments
 (0)