Skip to content

Instantly share code, notes, and snippets.

@Flow86
Created July 26, 2011 21:24
Show Gist options
  • Save Flow86/1108093 to your computer and use it in GitHub Desktop.
Save Flow86/1108093 to your computer and use it in GitHub Desktop.
the filler patterns can now collect items otherwisely dropped
diff -ur src\minecraft\net\minecraft\src\buildcraft\api\FillerPattern.java src\minecraft\net\minecraft\src\buildcraft\api\FillerPattern.java
--- src\minecraft\net\minecraft\src\buildcraft\api\FillerPattern.java Wed Jun 29 14:03:09 2011
+++ src\minecraft\net\minecraft\src\buildcraft\api\FillerPattern.java Tue Jul 26 23:17:20 2011
@@ -1,8 +1,11 @@
package net.minecraft.src.buildcraft.api;
+import net.minecraft.src.BuildCraftBlockUtil;
import net.minecraft.src.ItemStack;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
+import net.minecraft.src.buildcraft.api.Orientations;
+import net.minecraft.src.buildcraft.core.StackUtil;
import net.minecraft.src.buildcraft.core.Utils;
public abstract class FillerPattern {
@@ -20,7 +23,9 @@
public abstract int getTextureIndex ();
public boolean fill(int xMin, int yMin, int zMin, int xMax, int yMax,
- int zMax, ItemStack stackToPlace, World world) {
+ int zMax, ItemStack stackToPlace, TileEntity tile) {
+ World world = tile.worldObj;
+
boolean found = false;
int xSlot = 0, ySlot = 0, zSlot = 0;
@@ -47,7 +52,9 @@
}
public boolean empty(int xMin, int yMin, int zMin, int xMax, int yMax,
- int zMax, World world) {
+ int zMax, TileEntity tile) {
+ World world = tile.worldObj;
+
boolean found = false;
int lastX = Integer.MAX_VALUE, lastY = Integer.MAX_VALUE, lastZ = Integer.MAX_VALUE;
@@ -71,7 +78,25 @@
}
if (lastX != Integer.MAX_VALUE) {
- Utils.breakBlock(world, lastX, lastY, lastZ);
+ ItemStack stack = BuildCraftBlockUtil.getItemStackFromBlock(tile.worldObj, lastX, lastY, lastZ);
+
+ boolean added = false;
+ if (stack != null) {
+ // First, try to add to a nearby chest
+
+ StackUtil stackUtils = new StackUtil(stack);
+
+ added = stackUtils.addToRandomInventory(tile, Orientations.Unknown);
+
+ if (!added || stackUtils.items.stackSize > 0) {
+ added = Utils.addToRandomPipeEntry(tile, Orientations.Unknown, stackUtils.items);
+ }
+ }
+
+ if(added)
+ world.setBlockWithNotify(lastX, lastY, lastZ, 0);
+ else
+ Utils.breakBlock(world, lastX, lastY, lastZ);
}
diff -ur src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillAll.java src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillAll.java
--- src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillAll.java Sat Jun 18 00:42:37 2011
+++ src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillAll.java Tue Jul 26 23:22:53 2011
@@ -18,7 +18,7 @@
int yMax = (int) box.p2().y;
int zMax = (int) box.p2().z;
- return fill(xMin, yMin, zMin, xMax, yMax, zMax, stackToPlace, tile.worldObj);
+ return fill(xMin, yMin, zMin, xMax, yMax, zMax, stackToPlace, tile);
}
@Override
Only in src\minecraft\net\minecraft\src\buildcraft\builders: FillerFillAll.java.bak
diff -ur src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillPyramid.java src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillPyramid.java
--- src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillPyramid.java Sat Jun 18 16:51:36 2011
+++ src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillPyramid.java Tue Jul 26 23:23:09 2011
@@ -43,7 +43,7 @@
while (step <= xSize / 2 && step <= zSize / 2 && height >= yMin && height <= yMax) {
if (!fill(xMin + step, height, zMin + step, xMax - step, height,
- zMax - step, stackToPlace, tile.worldObj)) {
+ zMax - step, stackToPlace, tile)) {
return false;
}
Only in src\minecraft\net\minecraft\src\buildcraft\builders: FillerFillPyramid.java.bak
diff -ur src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillStairs.java src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillStairs.java
--- src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillStairs.java Sat Jun 18 16:51:36 2011
+++ src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillStairs.java Tue Jul 26 23:23:16 2011
@@ -115,7 +115,7 @@
&& height <= yMax) {
if (!fill(x1, height, z1, x2, height, z2, stackToPlace,
- tile.worldObj)) {
+ tile)) {
return false;
}
@@ -173,7 +173,7 @@
}
if (!fill(x1, height, z1, x2, height,
- z2, stackToPlace, tile.worldObj)) {
+ z2, stackToPlace, tile)) {
return false;
}
diff -ur src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillWalls.java src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillWalls.java
--- src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillWalls.java Thu Jun 16 23:41:15 2011
+++ src\minecraft\net\minecraft\src\buildcraft\builders\FillerFillWalls.java Tue Jul 26 23:23:22 2011
@@ -19,27 +19,27 @@
int zMax = (int) box.p2().z;
- if (!fill (xMin, yMin, zMin, xMax, yMin, zMax, stackToPlace, tile.worldObj)) {
+ if (!fill (xMin, yMin, zMin, xMax, yMin, zMax, stackToPlace, tile)) {
return false;
}
- if (!fill (xMin, yMin, zMin, xMin, yMax, zMax, stackToPlace, tile.worldObj)) {
+ if (!fill (xMin, yMin, zMin, xMin, yMax, zMax, stackToPlace, tile)) {
return false;
}
- if (!fill (xMin, yMin, zMin, xMax, yMax, zMin, stackToPlace, tile.worldObj)) {
+ if (!fill (xMin, yMin, zMin, xMax, yMax, zMin, stackToPlace, tile)) {
return false;
}
- if (!fill (xMax, yMin, zMin, xMax, yMax, zMax, stackToPlace, tile.worldObj)) {
+ if (!fill (xMax, yMin, zMin, xMax, yMax, zMax, stackToPlace, tile)) {
return false;
}
- if (!fill (xMin, yMin, zMax, xMax, yMax, zMax, stackToPlace, tile.worldObj)) {
+ if (!fill (xMin, yMin, zMax, xMax, yMax, zMax, stackToPlace, tile)) {
return false;
}
- if (!fill (xMin, yMax, zMin, xMax, yMax, zMax, stackToPlace, tile.worldObj)) {
+ if (!fill (xMin, yMax, zMin, xMax, yMax, zMax, stackToPlace, tile)) {
return false;
}
diff -ur src\minecraft\net\minecraft\src\buildcraft\builders\FillerFlattener.java src\minecraft\net\minecraft\src\buildcraft\builders\FillerFlattener.java
--- src\minecraft\net\minecraft\src\buildcraft\builders\FillerFlattener.java Wed Jun 29 14:03:09 2011
+++ src\minecraft\net\minecraft\src\buildcraft\builders\FillerFlattener.java Tue Jul 26 23:08:50 2011
@@ -64,7 +64,7 @@
return false;
}
- return empty (xMin, yMin, zMin, xMax, 64 * 2, zMax, tile.worldObj);
+ return empty (xMin, yMin, zMin, xMax, 64 * 2, zMax, tile);
}
@Override
diff -ur src\minecraft\net\minecraft\src\buildcraft\builders\FillerRemover.java src\minecraft\net\minecraft\src\buildcraft\builders\FillerRemover.java
--- src\minecraft\net\minecraft\src\buildcraft\builders\FillerRemover.java Thu Jun 16 23:41:15 2011
+++ src\minecraft\net\minecraft\src\buildcraft\builders\FillerRemover.java Tue Jul 26 23:08:49 2011
@@ -18,7 +18,7 @@
int yMax = (int) box.p2().y;
int zMax = (int) box.p2().z;
- return empty (xMin, yMin, zMin, xMax, yMax, zMax, tile.worldObj);
+ return empty (xMin, yMin, zMin, xMax, yMax, zMax, tile);
}
@Override
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment