diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2018-02-21 14:38:10 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2018-02-21 14:38:10 +1000 |
commit | 5d15dce9293f7c37089be3adfe0768de425838e2 (patch) | |
tree | 85e8146541b0ca71133c0b78fc36f657b5133f19 /src/Java/gtPlusPlus/api | |
parent | ed93e5e83a08a2312452366f646cb3dd86fa039e (diff) | |
download | GT5-Unofficial-5d15dce9293f7c37089be3adfe0768de425838e2.tar.gz GT5-Unofficial-5d15dce9293f7c37089be3adfe0768de425838e2.tar.bz2 GT5-Unofficial-5d15dce9293f7c37089be3adfe0768de425838e2.zip |
$ Tree Farmer Work.
% Package cleanup.
- Removed /Bed command.
Diffstat (limited to 'src/Java/gtPlusPlus/api')
18 files changed, 259 insertions, 490 deletions
diff --git a/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java b/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java deleted file mode 100644 index 2423eaa65c..0000000000 --- a/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java +++ /dev/null @@ -1,39 +0,0 @@ -package gtPlusPlus.api.analytics; - -import com.segment.analytics.Analytics; -import com.segment.analytics.Callback; -import com.segment.analytics.Log; -import com.segment.analytics.Plugin; -import com.segment.analytics.messages.Message; - -import gtPlusPlus.api.objects.Logger; - -/** - * A {@link Plugin} implementation that redirects client logs to standard output and logs callback - * events. - */ -public class AnalyticsLoggingPlugin implements Plugin { - @Override public void configure(Analytics.Builder builder) { - builder.log(new Log() { - @Override public void print(Level level, String format, Object... args) { - Logger.WARNING(level + ":\t" + String.format(format, args)); - } - - @Override public void print(Level level, Throwable error, String format, Object... args) { - Logger.WARNING(level + ":\t" + String.format(format, args)); - //Utils.LOG_WARNING(error); - } - }); - - builder.callback(new Callback() { - @Override public void success(Message message) { - Logger.WARNING("Uploaded " + message); - } - - @Override public void failure(Message message, Throwable throwable) { - Logger.WARNING("Could not upload " + message); - //Utils.LOG_WARNING(throwable); - } - }); - } -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java b/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java deleted file mode 100644 index dddb37fefb..0000000000 --- a/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java +++ /dev/null @@ -1,67 +0,0 @@ -package gtPlusPlus.api.analytics; - -import com.segment.analytics.Analytics; -import com.segment.analytics.Callback; -import com.segment.analytics.MessageTransformer; -import com.segment.analytics.Plugin; -import com.segment.analytics.messages.Message; -import com.segment.analytics.messages.MessageBuilder; -import java.util.concurrent.Phaser; - -/** - * The {@link Analytics} class doesn't come with a blocking {@link Analytics#flush()} implementation - * out of the box. It's trivial to build one using a {@link Phaser} that monitors requests and is - * able to block until they're uploaded. - * - * <pre><code> - * BlockingFlush mBlockingFlush = BlockingFlush.create(); - * Analytics mHelper = Analytics.builder(writeKey) - * .plugin(mBlockingFlush) - * .build(); - * - * // Do some work. - * - * mHelper.flush(); // Trigger a flush. - * mBlockingFlush.block(); // Block until the flush completes. - * mHelper.shutdown(); // Shut down after the flush is complete. - * </code></pre> - */ -public class BlockingFlush { - - public static BlockingFlush create() { - return new BlockingFlush(); - } - - BlockingFlush() { - this.phaser = new Phaser(1); - } - - final Phaser phaser; - - public Plugin plugin() { - return new Plugin() { - @Override public void configure(Analytics.Builder builder) { - builder.messageTransformer(new MessageTransformer() { - @Override public boolean transform(MessageBuilder builder) { - phaser.register(); - return true; - } - }); - - builder.callback(new Callback() { - @Override public void success(Message message) { - phaser.arrive(); - } - - @Override public void failure(Message message, Throwable throwable) { - phaser.arrive(); - } - }); - } - }; - } - - public void block() { - phaser.arriveAndAwaitAdvance(); - } -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java b/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java deleted file mode 100644 index c4ef82b9ef..0000000000 --- a/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java +++ /dev/null @@ -1,271 +0,0 @@ -package gtPlusPlus.api.analytics; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Timer; -import java.util.TimerTask; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Phaser; - -import com.mojang.authlib.GameProfile; -import com.segment.analytics.Analytics; - -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.lib.LoadedMods; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.player.PlayerUtils; -import gtPlusPlus.core.util.uuid.UUIDGenerator; -import gtPlusPlus.core.util.uuid.UUIDUtils; -import ic2.core.IC2; -import net.minecraft.entity.player.EntityPlayer; - -public class SegmentAnalytics { - - //Globally Enabled - public static boolean isEnabled = true; - - //Analytics Map with IDs - public static final Map<Integer, SegmentAnalytics> sAnalyticsMasterList = new ConcurrentHashMap<Integer, SegmentAnalytics>(); - //ID count - private static int sAnalyticsMapID = 0; - - //Analytics Player Mapping - public static final Map<UUID, Integer> sAnalyticsToPlayermap = new ConcurrentHashMap<UUID, Integer>(); - - //Set some Vars - final BlockingFlush mBlockingFlush; - final SegmentHelper mHelper; - final UUIDGenerator mUuidGenerator; - - public final GameProfile mLocalProfile; - public final String mLocalName; - public final UUID mUUID; - public final String mUserName; - public final String mAnonymousId; - protected Map<String, Object> mProperties = new LinkedHashMap<>(); - final protected Phaser mPhaser; - - //Build a new instance of this class - public SegmentAnalytics(EntityPlayer mPlayer){ - LOG("Initializing Segment for "+mPlayer.getDisplayName()); - - //Give this Object an ID - int currentID = sAnalyticsMapID; - sAnalyticsMapID++; - - //Map this Object to it's ID and a Player UUID. - sAnalyticsMasterList.put(currentID, this); - sAnalyticsToPlayermap.put(mPlayer.getUniqueID(), currentID); - - //Create a Phaser - this.mPhaser = new Phaser(1); - - //Set vars for player - this.mLocalProfile = mPlayer.getGameProfile(); - this.mLocalName = mLocalProfile.getName(); - this.mUUID = PlayerUtils.getPlayersUUIDByName(mLocalName); - this.mUserName = mUUID.toString(); - this.mAnonymousId = getStringForm(generateIdForSession()); - - //Create a new UUID generator. - this.mUuidGenerator = new UUIDGenerator(); - - //Use Segment Analytics instead of plain Google Analytics. - this.mBlockingFlush = BlockingFlush.create(); - this.mHelper = SegmentHelper.getInstance(); - initTimer(mPlayer); - } - - //Sets vars and stops Analytics running if the player profile is invalid. - private boolean canProcess(){ - //Invalid Player Profile - if (mLocalProfile == null || !isEnabled){ - return false; - } - if (mLocalName == null || mUUID == null || mUserName == null || mAnonymousId == null){ - //LOG("One player var remained null, returning false."); - return false; - } - if (mLocalName != null && mUUID != null && mUserName != null && mAnonymousId != null){ - //LOG("All player vars are ok, returning true."); - return true; - } - LOG("Something went wrong, returning false."); - return false; - } - - - public void submitInitData(EntityPlayer mPlayer){ - if (!canProcess()){ - return; - } - mProperties = new LinkedHashMap<>(); - mProperties.put("username", mLocalName); - mProperties.put("gt_version", Utils.getGregtechVersionAsString()); - if (LoadedMods.IndustrialCraft2){ - mProperties.put("ic2_version", IC2.VERSION); - } - mProperties.put("country_code", CORE.USER_COUNTRY); - mProperties.put("gtnh", CORE.GTNH); - - LOG("Created new Data packet, queued for submission."); - - //Old Code, now passed to Helper Class - /*mHelper.enqueue(IdentifyMessage.builder() - .userId(mUserName) //Save Username as UUID, for future sessions to attach to. - .traits(mProperties) - //.anonymousId(mAnonymousId) //Save Random Session UUID - );*/ - - mHelper.addUser(this.mUserName, mProperties); - - if (CORE.GTNH){ - mHelper.groupUser("GT:NewHorizons", this.mUserName); - } - else { - mHelper.groupUser("GT:Vanilla", this.mUserName); - } - - } - - public void submitTrackingData(String aActionPerformed){ - submitTrackingData(aActionPerformed, null); - } - - public void submitTrackingData(String aActionPerformed, Object aObject){ - if (!canProcess()){ - return; - } - - Map<String, Object> properties = new LinkedHashMap<>(); - properties.put("blockType", aObject); - String mObjectAsString = "Unknown"; - - if (aObject != null){ - mObjectAsString = aObject.toString(); - } - - LOG("Queued submission of data for event "+aActionPerformed+". This was performed on "+mObjectAsString+"."); - - mHelper.trackUser(this.mUserName, aActionPerformed, properties); - - //Old Code, now passed to Helper Class - /*mHelper.enqueue(TrackMessage.builder(aActionPerformed) // - .userId(mUserName) // Save Username as UUID, for future sessions to attach to. - .properties(mProperties) //Save Stats - //.anonymousId(mAnonymousId) //Save Random Session UUID - ); - flushData(); - */ - } - - public void flushData(){ - getAnalyticObject().flush(); - } - - public void flushDataFinal(){ - LOG("Flushing all data from Queue to Segment Analytics database."); - getAnalyticObject().flush(); - mBlockingFlush.block(); - mPhaser.arriveAndAwaitAdvance(); - getAnalyticObject().shutdown(); - /*try { - this.finalize(); - } - catch (Throwable e) { - Utils.LOG_INFO("Could not finalize Analytics Object."); - }*/ - } - - public UUID generateIdForSession(){ - return UUIDUtils.getUUIDFromBytes(generateUUID()); - } - - private final byte[] generateUUID(){ - byte[] mUUID; - - if (this.mUuidGenerator != null){ - try { - if ((mUUID = mUuidGenerator.next(4)) != null){ - LOG("Generated Type 4 UUID for Session ID."); - return mUUID; - } - else if ((mUUID = mUuidGenerator.next(1)) != null){ - LOG("Generated Type 1 UUID for Session ID."); - return mUUID; - } - } - catch (Throwable t){ - t.printStackTrace(); - } - } - - LOG("Generated Type 3 UUID for Session ID."); - return UUIDUtils.getBytesFromUUID(UUID.randomUUID()); - - } - - public final String getStringForm(UUID mID){ - return mID.toString(); - } - - // Non-Dev Comments - public static void LOG(final String s) { - if (CORE.DEBUG){ - Logger.getLogger().info("[Analytics] "+s); - } - } - - public static SegmentAnalytics getAnalyticsForPlayer(EntityPlayer mPlayer){ - try { - if (mPlayer != null){ - if (SegmentAnalytics.sAnalyticsToPlayermap.containsKey(mPlayer.getUniqueID())){ - int ID = sAnalyticsToPlayermap.get(mPlayer.getUniqueID()); - return SegmentAnalytics.sAnalyticsMasterList.get(ID); - } - else { - LOG("Map does not contain Player."); - } - } - else { - LOG("Invalid Player."); - } - } - catch (Throwable t){ - t.printStackTrace(); - } - return null; - } - - public final Analytics getAnalyticObject() { - return mHelper.getAnalyticsClient(); - } - - public final Map<String, Object> getPlayerProperties(){ - return this.mProperties; - } - - - public Timer initTimer(EntityPlayer mPlayer) { - Timer timer; - timer = new Timer(); - timer.schedule(new initPlayer(mPlayer), 2 * 1000); - return timer; - } - - //Timer Task for notifying the player. - class initPlayer extends TimerTask { - final EntityPlayer aPlayer; - public initPlayer(EntityPlayer mPlayer) { - this.aPlayer = mPlayer; - } - @Override - public void run() { - //Let us submit a doorknock to Segment to let them know who this is. - submitInitData(aPlayer); - } - } - -} diff --git a/src/Java/gtPlusPlus/api/analytics/SegmentHelper.java b/src/Java/gtPlusPlus/api/analytics/SegmentHelper.java deleted file mode 100644 index 6e264fe1d2..0000000000 --- a/src/Java/gtPlusPlus/api/analytics/SegmentHelper.java +++ /dev/null @@ -1,81 +0,0 @@ -package gtPlusPlus.api.analytics; - -import com.segment.analytics.Analytics; -import com.segment.analytics.Callback; -import com.segment.analytics.messages.Message; -import com.segment.analytics.messages.TrackMessage; -import com.segment.analytics.messages.*; -import java.util.Map; - -public class SegmentHelper implements Callback { - - /** - * Credits to Author: FLAMINSAGANAKI/Theodore Mavrakis - * http://domisydev.com/2015/11/05/using-segment-analytics-in-your-java-servlet/ - */ - - private static final String writeKey = "EDOWl9peleGlUqe1ZwTqKDyuTMFhyT4k"; - private static volatile SegmentHelper segment = new SegmentHelper(); - private Analytics analytics; - - public SegmentHelper(){ - try{ - this.analytics = Analytics.builder(writeKey).callback(this).build(); - }catch(Exception e){ - SegmentAnalytics.LOG("exception while creating Analytics : " + e); - } - } - - public static SegmentHelper getInstance(){ - return segment; - } - - public Analytics getAnalyticsClient(){ - return segment.analytics; - } - - public void success(Message message) { - SegmentAnalytics.LOG("Successfully uploaded " + message); - } - - public void failure(Message message, Throwable throwable) { - SegmentAnalytics.LOG("Could not upload " + message); - } - - public void addUser(String user_id, Map<String, Object> properties) { - try { - this.analytics.enqueue(IdentifyMessage.builder().userId(user_id).traits(properties)); - //trackUser(user_id, "Logged In", properties); - } catch (Exception e) { - SegmentAnalytics.LOG("Exception in addUser() - " + e); - } - } - - public void trackUser(String user_id, String description, Map<String, Object> properties) { - try { - this.analytics.enqueue(TrackMessage.builder(description).userId(user_id).properties(properties)); - } catch (Exception e) { - SegmentAnalytics.LOG("Exception in trackUser() - " + e); - } - } - - public void trackUser(String user_id, String description) { - try { - this.analytics.enqueue(TrackMessage.builder(description).userId(user_id)); - } catch (Exception e) { - SegmentAnalytics.LOG("Exception in trackUser() - " + e); - } - } - - public void groupUser(String group_id, String user_id) { - try { - this.analytics.enqueue(GroupMessage.builder(group_id).userId(user_id)); - } catch (Exception e) { - SegmentAnalytics.LOG("Exception in groupUser() - " + e); - } - } - - public static void main(String[] args){ - - } -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/damage/BaseCustomDamageSource.java b/src/Java/gtPlusPlus/api/damage/BaseCustomDamageSource.java deleted file mode 100644 index 24348988d6..0000000000 --- a/src/Java/gtPlusPlus/api/damage/BaseCustomDamageSource.java +++ /dev/null @@ -1,22 +0,0 @@ -package gtPlusPlus.api.damage; - -import net.minecraft.entity.Entity; -import net.minecraft.util.EntityDamageSourceIndirect; - -public class BaseCustomDamageSource extends EntityDamageSourceIndirect { - - public BaseCustomDamageSource(String name, Entity transmitter, Entity indirectSource) { - super(name, transmitter, indirectSource); - this.setDifficultyScaled(); - } - - /** - * Return whether this damage source will have its damage amount scaled based on the current difficulty. - */ - public boolean isDifficultyScaled() - { - return true; - } - - -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/damage/DamageTeslaTower.java b/src/Java/gtPlusPlus/api/damage/DamageTeslaTower.java index ada2ba5c3d..ecde9fe930 100644 --- a/src/Java/gtPlusPlus/api/damage/DamageTeslaTower.java +++ b/src/Java/gtPlusPlus/api/damage/DamageTeslaTower.java @@ -1,5 +1,6 @@ package gtPlusPlus.api.damage; +import gtPlusPlus.core.world.damage.BaseCustomDamageSource; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.ChatComponentTranslation; diff --git a/src/Java/gtPlusPlus/api/objects/MaterialHelper.java b/src/Java/gtPlusPlus/api/helpers/MaterialHelper.java index d63ab7a15a..bb30727992 100644 --- a/src/Java/gtPlusPlus/api/objects/MaterialHelper.java +++ b/src/Java/gtPlusPlus/api/helpers/MaterialHelper.java @@ -1,4 +1,4 @@ -package gtPlusPlus.api.objects; +package gtPlusPlus.api.helpers; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; diff --git a/src/Java/gtPlusPlus/api/interfaces/IEntityCatcher.java b/src/Java/gtPlusPlus/api/interfaces/IEntityCatcher.java index ca2d80de53..12813e1dd0 100644 --- a/src/Java/gtPlusPlus/api/interfaces/IEntityCatcher.java +++ b/src/Java/gtPlusPlus/api/interfaces/IEntityCatcher.java @@ -1,6 +1,6 @@ package gtPlusPlus.api.interfaces; -import gtPlusPlus.core.util.array.BlockPos; +import gtPlusPlus.api.objects.minecraft.BlockPos; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.world.World; diff --git a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java new file mode 100644 index 0000000000..a8d24d36d8 --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java @@ -0,0 +1,77 @@ +package gtPlusPlus.api.objects.data; + +import java.io.Serializable; +import java.util.*; + +public class AutoMap<V> implements Iterable<V>, Cloneable, Serializable { + + /** + * The Internal Map + */ + private Map<Integer, V> mInternalMap = new HashMap<Integer, V>(); + + /** + * The Internal ID + */ + private int mInternalID = 0; + private static final long serialVersionUID = 3771412318075131790L; + + @Override + public Iterator<V> iterator() { + return values().iterator(); + } + + public synchronized boolean setValue(V object){ + int mOriginalID = this.mInternalID; + put(object); + if (this.mInternalMap.get(mOriginalID).equals(object) || mOriginalID > this.mInternalID){ + return true; + } + else { + return false; + } + } + + public synchronized V put(V object){ + return set(object); + } + + public synchronized V set(V object){ + return mInternalMap.put(mInternalID++, object); + } + + public synchronized V get(int id){ + return mInternalMap.get(id); + } + + public synchronized Collection<V> values(){ + return mInternalMap.values(); + } + + public synchronized int size(){ + return mInternalMap.size(); + } + + public synchronized int hashcode(){ + return mInternalMap.hashCode(); + } + + public synchronized boolean containsKey(int key){ + return mInternalMap.containsKey(key); + } + + public synchronized boolean containsValue(V value){ + return mInternalMap.containsValue(value); + } + + public synchronized boolean isEmpty(){ + return mInternalMap.isEmpty(); + } + + public synchronized boolean clear(){ + this.mInternalID = 0; + this.mInternalMap.clear(); + return true; + } + +} diff --git a/src/Java/gtPlusPlus/api/objects/data/Pair.java b/src/Java/gtPlusPlus/api/objects/data/Pair.java new file mode 100644 index 0000000000..6ab781cf1e --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/data/Pair.java @@ -0,0 +1,27 @@ +package gtPlusPlus.api.objects.data; + +import java.io.Serializable; + +public class Pair<K,V> implements Serializable { + + /** + * SVUID + */ + private static final long serialVersionUID = 1250550491092812443L; + private final K key; + private final V value; + + public Pair(final K key, final V value){ + this.key = key; + this.value = value; + } + + final public K getKey(){ + return this.key; + } + + final public V getValue(){ + return this.value; + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/objects/data/Quad.java b/src/Java/gtPlusPlus/api/objects/data/Quad.java new file mode 100644 index 0000000000..01c62e95e6 --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/data/Quad.java @@ -0,0 +1,33 @@ +package gtPlusPlus.api.objects.data; + +public class Quad<K,V,C,R> { + + private final K key; + private final V value; + private final C value2; + private final R value3; + + public Quad(final K key, final V value, final C value2, final R value3){ + this.key = key; + this.value = value; + this.value2 = value2; + this.value3 = value3; + } + + final public K getKey(){ + return this.key; + } + + final public V getValue_1(){ + return this.value; + } + + final public C getValue_2(){ + return this.value2; + } + + final public R getValue_3(){ + return this.value3; + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/objects/data/Triplet.java b/src/Java/gtPlusPlus/api/objects/data/Triplet.java new file mode 100644 index 0000000000..affb03d868 --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/data/Triplet.java @@ -0,0 +1,27 @@ +package gtPlusPlus.api.objects.data; + +public class Triplet<K,V,C> { + + private final K key; + private final V value; + private final C count; + + public Triplet(final K key, final V value, final C value2){ + this.key = key; + this.value = value; + this.count = value2; + } + + final public K getValue_1(){ + return this.key; + } + + final public V getValue_2(){ + return this.value; + } + + final public C getValue_3(){ + return this.count; + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java b/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java new file mode 100644 index 0000000000..d258d1fe73 --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/minecraft/BlockPos.java @@ -0,0 +1,85 @@ +package gtPlusPlus.api.objects.minecraft; + +import java.io.Serializable; + +public class BlockPos implements Serializable{ + + private static final long serialVersionUID = -7271947491316682006L; + public final int xPos; + public final int yPos; + public final int zPos; + public final int dim; + + public BlockPos(int x, int y, int z){ + this(x, y, z, 0); + } + + public BlockPos(int x, int y, int z, int dim){ + this.xPos = x; + this.yPos = y; + this.zPos = z; + this.dim = dim; + } + + public String getLocationString() { + return "[X: "+this.xPos+"][Y: "+this.yPos+"][Z: "+this.zPos+"][Dim: "+this.dim+"]"; + } + + @Override + public int hashCode() { + int hash = 5; + hash += (13 * this.xPos); + hash += (19 * this.yPos); + hash += (31 * this.zPos); + hash += (17 * this.dim); + return hash; + } + + @Override + public boolean equals(Object other) { + if (other == null) { + return false; + } + if (other == this) { + return true; + } + if(!(other instanceof BlockPos)) { + return false; + } + BlockPos otherPoint = (BlockPos)other; + return this.xPos == otherPoint.xPos && this.yPos == otherPoint.yPos && this.zPos == otherPoint.zPos && this.dim == otherPoint.dim; + } + + public int distanceFrom(BlockPos target) { + if (target.dim != this.dim) { + return Short.MIN_VALUE; + } + return distanceFrom(target.xPos, target.yPos, target.zPos); + } + + /** + * + * @param x X coordinate of target. + * @param y Y coordinate of target. + * @param z Z coordinate of target. + * @return square of distance + */ + public int distanceFrom(int x, int y, int z) { + int distanceX = this.xPos - x; + int distanceY = this.yPos - y; + int distanceZ = this.zPos - z; + return distanceX * distanceX + distanceY * distanceY + distanceZ * distanceZ; + } + + public boolean isWithinRange(BlockPos target, int range) { + if (target.dim != this.dim) { + return false; + } + return isWithinRange(target.xPos, target.yPos, target.zPos, range); + } + + public boolean isWithinRange(int x, int y, int z, int range) { + return distanceFrom(x, y, z) <= (range * range); + } + +} diff --git a/src/Java/gtPlusPlus/api/objects/ChunkManager.java b/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java index 0bace04bf8..b411e8875a 100644 --- a/src/Java/gtPlusPlus/api/objects/ChunkManager.java +++ b/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java @@ -6,14 +6,14 @@ * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ -package gtPlusPlus.api.objects; +package gtPlusPlus.api.objects.minecraft; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.ListMultimap; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import gtPlusPlus.GTplusplus; -import gtPlusPlus.core.util.array.BlockPos; -import gtPlusPlus.core.util.array.Triplet; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.Triplet; import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaTileEntityChunkLoader; import java.util.HashSet; diff --git a/src/Java/gtPlusPlus/api/objects/DimChunkPos.java b/src/Java/gtPlusPlus/api/objects/minecraft/DimChunkPos.java index bea0a4ec3b..010e522a14 100644 --- a/src/Java/gtPlusPlus/api/objects/DimChunkPos.java +++ b/src/Java/gtPlusPlus/api/objects/minecraft/DimChunkPos.java @@ -1,6 +1,5 @@ -package gtPlusPlus.api.objects; +package gtPlusPlus.api.objects.minecraft; -import gtPlusPlus.core.util.array.BlockPos; import net.minecraft.client.Minecraft; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; diff --git a/src/Java/gtPlusPlus/api/objects/GenericStack.java b/src/Java/gtPlusPlus/api/objects/minecraft/GenericStack.java index b3bc94364f..f5db1d9e3a 100644 --- a/src/Java/gtPlusPlus/api/objects/GenericStack.java +++ b/src/Java/gtPlusPlus/api/objects/minecraft/GenericStack.java @@ -1,4 +1,4 @@ -package gtPlusPlus.api.objects; +package gtPlusPlus.api.objects.minecraft; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; diff --git a/src/Java/gtPlusPlus/api/objects/CSPRNG_DO_NOT_USE.java b/src/Java/gtPlusPlus/api/objects/random/CSPRNG_DO_NOT_USE.java index 19200846ca..b2dc984456 100644 --- a/src/Java/gtPlusPlus/api/objects/CSPRNG_DO_NOT_USE.java +++ b/src/Java/gtPlusPlus/api/objects/random/CSPRNG_DO_NOT_USE.java @@ -33,7 +33,7 @@ * http://www.opensource.org/licenses/bsd-license.php */ -package gtPlusPlus.api.objects; +package gtPlusPlus.api.objects.random; import java.math.BigInteger; import java.security.SecureRandom; import java.util.Random; diff --git a/src/Java/gtPlusPlus/api/objects/XSTR.java b/src/Java/gtPlusPlus/api/objects/random/XSTR.java index 3ff0792f6e..7f83df52c4 100644 --- a/src/Java/gtPlusPlus/api/objects/XSTR.java +++ b/src/Java/gtPlusPlus/api/objects/random/XSTR.java @@ -1,4 +1,4 @@ -package gtPlusPlus.api.objects; +package gtPlusPlus.api.objects.random; /** * A subclass of java.util.random that implements the Xorshift random number * generator |