Added script to do all the math
Added the algorithm needed to convert portal codes into galatic coordinates
This commit is contained in:
41
converter.sh
Normal file
41
converter.sh
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
PORTALHEX=$1
|
||||
if [ -z "$PORTALHEX" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
P=$(echo $PORTALHEX | cut -c 1-1)
|
||||
SSI=$(echo $PORTALHEX | cut -c 2-4)
|
||||
Y=$(echo $PORTALHEX | cut -c 5-6)
|
||||
Z=$(echo $PORTALHEX | cut -c 7-9)
|
||||
X=$(echo $PORTALHEX | cut -c 10-12)
|
||||
|
||||
Yd=$(echo "ibase=16; $Y" | bc)
|
||||
Xd=$(echo "ibase=16; $X" | bc)
|
||||
Zd=$(echo "ibase=16; $Z" | bc)
|
||||
|
||||
if (( $Yd <= 128 )) ; then
|
||||
Y=$(expr $Y + 100)
|
||||
fi
|
||||
if (( $Zd <= 2048 )) ; then
|
||||
Z=$(expr $Z + 1000)
|
||||
fi
|
||||
if (( $Xd <= 2048 )) ; then
|
||||
X=$(expr $X + 1000)
|
||||
fi
|
||||
|
||||
Yd=$(echo "ibase=16; $Y" | bc)
|
||||
Xd=$(echo "ibase=16; $X" | bc)
|
||||
Zd=$(echo "ibase=16; $Z" | bc)
|
||||
|
||||
Y=$(echo "obase=16; $(expr $Yd - 129)" | bc)
|
||||
X=$(echo "obase=16; $(expr $Xd - 2049)" | bc)
|
||||
Z=$(echo "obase=16; $(expr $Zd - 2049)" | bc)
|
||||
|
||||
X=`printf "%04x" 0x$X`
|
||||
Y=`printf "%04x" 0x$Y`
|
||||
Z=`printf "%04x" 0x$Z`
|
||||
SSI=`printf "%04x" 0x$SSI`
|
||||
|
||||
echo -e "$X:$Y:$Z:$SSI"
|
||||
Reference in New Issue
Block a user