aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
authorJordan Byrne <draknyte1@hotmail.com>2018-02-22 19:05:33 +1000
committerJordan Byrne <draknyte1@hotmail.com>2018-02-22 19:05:33 +1000
commitd7d123d15ae716033cb6fd890477e9ffb3fc3661 (patch)
treedbccacc9e7c65ee11ebf277c66ba053d57ee5c83 /src/Java/gtPlusPlus/core
parent6ecc76786555e2aaa7b1e9f5c65b9619a9d93239 (diff)
downloadGT5-Unofficial-d7d123d15ae716033cb6fd890477e9ffb3fc3661.tar.gz
GT5-Unofficial-d7d123d15ae716033cb6fd890477e9ffb3fc3661.tar.bz2
GT5-Unofficial-d7d123d15ae716033cb6fd890477e9ffb3fc3661.zip
$ Buffed all Multiblocks.
% Greatly expanded BlockPos.java.
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java7
-rw-r--r--src/Java/gtPlusPlus/core/item/tool/misc/ConnectedBlockFinder.java81
-rw-r--r--src/Java/gtPlusPlus/core/util/data/ArrayUtils.java14
3 files changed, 55 insertions, 47 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 50ff8c061b..c93353459e 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -700,8 +700,11 @@ public final class ModItems {
//Chemistry
CoalTar.run();
-
- new ConnectedBlockFinder();
+
+ //Only used for debugging.
+ if (CORE.DEVENV) {
+ new ConnectedBlockFinder();
+ }
//Misc Items
@SuppressWarnings("unused")
diff --git a/src/Java/gtPlusPlus/core/item/tool/misc/ConnectedBlockFinder.java b/src/Java/gtPlusPlus/core/item/tool/misc/ConnectedBlockFinder.java
index f0cc8c7344..b827f4e601 100644
--- a/src/Java/gtPlusPlus/core/item/tool/misc/ConnectedBlockFinder.java
+++ b/src/Java/gtPlusPlus/core/item/tool/misc/ConnectedBlockFinder.java
@@ -7,6 +7,7 @@ import java.util.Set;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.minecraft.BlockPos;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.item.base.BaseItemWithDamageValue;
@@ -74,67 +75,57 @@ public class ConnectedBlockFinder extends BaseItemWithDamageValue{
float hitX, float hitY, float hitZ) {
BlockPos mStartPoint = new BlockPos(x,y,z);
-
Block mBlockType = world.getBlock(x, y, z);
int mBlockMeta = mBlockType.getDamageValue(world, x, y, z);
+ //Return if Air.
+ if (world.isAirBlock(x, y, z)) {
+ return false;
+ }
+
+ int breaker = 0;
Set<BlockPos> mTotalIndex = new HashSet<BlockPos>();
+
Set<BlockPos> mFirstSearch = new HashSet<BlockPos>();
Set<BlockPos> mSearch_A = new HashSet<BlockPos>();
+
Set<BlockPos> mSearch_B = new HashSet<BlockPos>();
Set<BlockPos> mSearch_C = new HashSet<BlockPos>();
+ Set<BlockPos> mSearch_D = new HashSet<BlockPos>();
- for (BlockPos b : mStartPoint.getSurroundingBlocks().values()) {
- if (world.getBlock(b.xPos, b.yPos, b.zPos) == mBlockType) {
- if (mBlockType.getDamageValue(world, b.xPos, b.yPos, b.zPos) == mBlockMeta) {
- if (mFirstSearch.add(b)) {
- if (mTotalIndex.add(b)) {
- world.setBlock(b.xPos, b.yPos, b.zPos, Blocks.emerald_ore);
- }
- }
- }
- }
- }
+ mFirstSearch.add(mStartPoint);
+ mTotalIndex.add(mStartPoint);
- for (BlockPos b : mFirstSearch) {
- if (world.getBlock(b.xPos, b.yPos, b.zPos) == mBlockType) {
- if (mBlockType.getDamageValue(world, b.xPos, b.yPos, b.zPos) == mBlockMeta) {
- if (mSearch_A.add(b)) {
- if (mTotalIndex.add(b)) {
- world.setBlock(b.xPos, b.yPos, b.zPos, Blocks.emerald_ore);
- }
- }
- }
- }
- }
-
- for (BlockPos b : mSearch_A) {
- if (world.getBlock(b.xPos, b.yPos, b.zPos) == mBlockType) {
- if (mBlockType.getDamageValue(world, b.xPos, b.yPos, b.zPos) == mBlockMeta) {
- if (mSearch_B.add(b)) {
- if (mTotalIndex.add(b)) {
- world.setBlock(b.xPos, b.yPos, b.zPos, Blocks.emerald_ore);
- }
- }
- }
- }
- }
- for (BlockPos b : mSearch_B) {
- if (world.getBlock(b.xPos, b.yPos, b.zPos) == mBlockType) {
- if (mBlockType.getDamageValue(world, b.xPos, b.yPos, b.zPos) == mBlockMeta) {
- if (mSearch_C.add(b)) {
- if (mTotalIndex.add(b)) {
- world.setBlock(b.xPos, b.yPos, b.zPos, Blocks.emerald_ore);
- }
- }
- }
+
+
+ for (BlockPos G : mSearch_D) {
+ if (!world.isAirBlock(G.xPos, G.yPos, G.zPos)) {
+ world.setBlock(G.xPos, G.yPos, G.zPos, Blocks.diamond_ore);
}
}
+
+
return super.onItemUse(stack, player, world, x, y, z, side, hitX, hitY, hitZ);
}
-
+
+ public Set<BlockPos> getValidNeighboursForSet(Set<BlockPos> set){
+ Set<BlockPos> results = set;
+ for (BlockPos F : set) {
+ results.addAll(F.getValidNeighboursAndSelf());
+ }
+ return results;
+ }
+
+ public Set<BlockPos> getExtraNeighboursForSet(Set<BlockPos> set){
+ Set<BlockPos> results = set;
+ for (BlockPos F : set) {
+ results.addAll(F.getValidNeighboursAndSelf());
+ }
+ return results;
+ }
+
@Override
public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
// TODO Auto-generated method stub
diff --git a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
index 63ffe63314..82b45360f8 100644
--- a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
+++ b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
@@ -5,7 +5,9 @@ import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
public class ArrayUtils {
@@ -30,5 +32,17 @@ public class ArrayUtils {
list.removeAll(Collections.singleton((ItemStack)null));
return list.toArray(new ItemStack[list.size()]);
}
+
+ @SuppressWarnings("unchecked")
+ public static <T> Set<T> combineSetData(Set<T> S, Set<T> J) {
+ Set<T> mData = new HashSet<T>();
+ T[] array1 = (T[]) S.toArray();
+ Collections.addAll(mData, array1);
+ T[] array2 = (T[]) J.toArray();
+ Collections.addAll(mData, array2);
+ return mData;
+ }
+
+
}