mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-17 13:13:12 +01:00
77 lines
2.5 KiB
Java
77 lines
2.5 KiB
Java
|
/*
|
||
|
* This file ("ConnectionPair.java") is part of the Actually Additions mod for Minecraft.
|
||
|
* It is created and owned by Ellpeck and distributed
|
||
|
* under the Actually Additions License to be found at
|
||
|
* http://ellpeck.de/actaddlicense
|
||
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||
|
*
|
||
|
* © 2015-2016 Ellpeck
|
||
|
*/
|
||
|
|
||
|
package de.ellpeck.actuallyadditions.api.laser;
|
||
|
|
||
|
import net.minecraft.nbt.NBTTagCompound;
|
||
|
import net.minecraft.util.math.BlockPos;
|
||
|
|
||
|
public class ConnectionPair{
|
||
|
|
||
|
public final BlockPos[] positions = new BlockPos[2];
|
||
|
|
||
|
public ConnectionPair(BlockPos firstRelay, BlockPos secondRelay){
|
||
|
this.positions[0] = firstRelay;
|
||
|
this.positions[1] = secondRelay;
|
||
|
}
|
||
|
|
||
|
public static ConnectionPair readFromNBT(NBTTagCompound compound){
|
||
|
if(compound != null){
|
||
|
BlockPos[] pos = new BlockPos[2];
|
||
|
for(int i = 0; i < pos.length; i++){
|
||
|
int anX = compound.getInteger("x"+i);
|
||
|
int aY = compound.getInteger("y"+i);
|
||
|
int aZ = compound.getInteger("z"+i);
|
||
|
pos[i] = new BlockPos(anX, aY, aZ);
|
||
|
}
|
||
|
return new ConnectionPair(pos[0], pos[1]);
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public boolean contains(BlockPos relay){
|
||
|
for(BlockPos position : this.positions){
|
||
|
if(position != null && position.equals(relay)){
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String toString(){
|
||
|
return (this.positions[0] == null ? "-" : this.positions[0].toString())+" | "+(this.positions[1] == null ? "-" : this.positions[1].toString());
|
||
|
}
|
||
|
|
||
|
public NBTTagCompound writeToNBT(){
|
||
|
NBTTagCompound compound = new NBTTagCompound();
|
||
|
for(int i = 0; i < this.positions.length; i++){
|
||
|
BlockPos relay = this.positions[i];
|
||
|
compound.setInteger("x"+i, relay.getX());
|
||
|
compound.setInteger("y"+i, relay.getY());
|
||
|
compound.setInteger("z"+i, relay.getZ());
|
||
|
}
|
||
|
return compound;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean equals(Object obj){
|
||
|
if(obj instanceof ConnectionPair){
|
||
|
ConnectionPair pair = (ConnectionPair)obj;
|
||
|
for(int i = 0; i < this.positions.length; i++){
|
||
|
if(this.positions[i] == pair.positions[i] || (this.positions[i] != null && this.positions[i].equals(pair.positions[i]))){
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return super.equals(obj);
|
||
|
}
|
||
|
}
|