Additional clean up
This commit is contained in:
parent
aa3bd80ab2
commit
6759917a2f
@ -38,6 +38,9 @@ public class FillSchematic extends AbstractSchematic {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBlockState desiredState(int x, int y, int z, IBlockState current, List<IBlockState> approxPlaceable) {
|
public IBlockState desiredState(int x, int y, int z, IBlockState current, List<IBlockState> approxPlaceable) {
|
||||||
|
// TODO: is this even necessary???
|
||||||
|
// Builder will already handle logic that requires breaking blocks before replacing them, and non-api Fill Schematic
|
||||||
|
// is used for clear area and doesn't have any issues.
|
||||||
if (bom.matches(current)) {
|
if (bom.matches(current)) {
|
||||||
return current;
|
return current;
|
||||||
} else if (current.getBlock() != Blocks.AIR) {
|
} else if (current.getBlock() != Blocks.AIR) {
|
||||||
|
@ -17,22 +17,17 @@
|
|||||||
|
|
||||||
package baritone.utils.schematic;
|
package baritone.utils.schematic;
|
||||||
|
|
||||||
import baritone.api.schematic.ISchematic;
|
import baritone.api.schematic.AbstractSchematic;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class FillSchematic implements ISchematic {
|
public class FillSchematic extends AbstractSchematic {
|
||||||
|
|
||||||
private final int widthX;
|
|
||||||
private final int heightY;
|
|
||||||
private final int lengthZ;
|
|
||||||
private final IBlockState state;
|
private final IBlockState state;
|
||||||
|
|
||||||
public FillSchematic(int widthX, int heightY, int lengthZ, IBlockState state) {
|
public FillSchematic(int widthX, int heightY, int lengthZ, IBlockState state) {
|
||||||
this.widthX = widthX;
|
super(widthX, heightY, lengthZ);
|
||||||
this.heightY = heightY;
|
|
||||||
this.lengthZ = lengthZ;
|
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,19 +35,4 @@ public class FillSchematic implements ISchematic {
|
|||||||
public IBlockState desiredState(int x, int y, int z, IBlockState current, List<IBlockState> approxPlaceable) {
|
public IBlockState desiredState(int x, int y, int z, IBlockState current, List<IBlockState> approxPlaceable) {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int widthX() {
|
|
||||||
return widthX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int heightY() {
|
|
||||||
return heightY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int lengthZ() {
|
|
||||||
return lengthZ;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -17,23 +17,20 @@
|
|||||||
|
|
||||||
package baritone.utils.schematic;
|
package baritone.utils.schematic;
|
||||||
|
|
||||||
import baritone.api.schematic.AbstractSchematic;
|
|
||||||
import baritone.api.schematic.ISchematic;
|
import baritone.api.schematic.ISchematic;
|
||||||
|
import baritone.api.schematic.MaskSchematic;
|
||||||
import net.minecraft.block.BlockAir;
|
import net.minecraft.block.BlockAir;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.OptionalInt;
|
import java.util.OptionalInt;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
public class MapArtSchematic extends AbstractSchematic {
|
public class MapArtSchematic extends MaskSchematic {
|
||||||
|
|
||||||
private final ISchematic child;
|
|
||||||
private final int[][] heightMap;
|
private final int[][] heightMap;
|
||||||
|
|
||||||
public MapArtSchematic(ISchematic schematic) {
|
public MapArtSchematic(ISchematic schematic) {
|
||||||
super(schematic.widthX(), schematic.heightY(), schematic.lengthZ());
|
super(schematic);
|
||||||
this.child = schematic;
|
|
||||||
|
|
||||||
heightMap = new int[schematic.widthX()][schematic.lengthZ()];
|
heightMap = new int[schematic.widthX()][schematic.lengthZ()];
|
||||||
|
|
||||||
@ -63,28 +60,7 @@ public class MapArtSchematic extends AbstractSchematic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean inSchematic(int x, int y, int z, IBlockState currentState) {
|
protected boolean partOfMask(int x, int y, int z, IBlockState currentState) {
|
||||||
// in map art, we only care about coordinates in or above the art
|
return y >= heightMap[x][z];
|
||||||
return this.child.inSchematic(x, y, z, currentState) && y >= heightMap[x][z];
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBlockState desiredState(int x, int y, int z, IBlockState current, List<IBlockState> approxPlaceable) {
|
|
||||||
return this.child.desiredState(x, y, z, current, approxPlaceable);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int widthX() {
|
|
||||||
return this.child.widthX();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int heightY() {
|
|
||||||
return this.child.heightY();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int lengthZ() {
|
|
||||||
return this.child.lengthZ();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user