make planet stuff public, constructor protected

This commit is contained in:
DeltaNedas
2020-10-16 19:57:13 +01:00
parent 5ee4101ba4
commit bddcdc0aa2

View File

@ -22,15 +22,16 @@ public class PlanetGrid{
{5, 3, 10, 1, 4}, {2, 5, 4, 0, 11}, {3, 7, 6, 1, 8}, {7, 2, 9, 0, 6} {5, 3, 10, 1, 4}, {2, 5, 4, 0, 11}, {3, 7, 6, 1, 8}, {7, 2, 9, 0, 6}
}; };
public final int size; public int size;
public final Ptile[] tiles; public Ptile[] tiles;
public final Corner[] corners; public Corner[] corners;
public final Edge[] edges; public Edge[] edges;
PlanetGrid(int size){ //this is protected so if you want to make strange grids you should know what you're doing.
protected PlanetGrid(int size){
this.size = size; this.size = size;
tiles = new Ptile[Buildingount(size)]; tiles = new Ptile[tileCount(size)];
for(int i = 0; i < tiles.length; i++){ for(int i = 0; i < tiles.length; i++){
tiles[i] = new Ptile(i, i < 12 ? 5 : 6); tiles[i] = new Ptile(i, i < 12 ? 5 : 6);
} }
@ -67,7 +68,7 @@ public class PlanetGrid{
return result; return result;
} }
static PlanetGrid initialGrid(){ public static PlanetGrid initialGrid(){
PlanetGrid grid = new PlanetGrid(0); PlanetGrid grid = new PlanetGrid(0);
for(Ptile t : grid.tiles){ for(Ptile t : grid.tiles){
@ -111,7 +112,7 @@ public class PlanetGrid{
return grid; return grid;
} }
static PlanetGrid subdividedGrid(PlanetGrid prev){ public static PlanetGrid subdividedGrid(PlanetGrid prev){
PlanetGrid grid = new PlanetGrid(prev.size + 1); PlanetGrid grid = new PlanetGrid(prev.size + 1);
int prevTiles = prev.tiles.length; int prevTiles = prev.tiles.length;
@ -162,7 +163,7 @@ public class PlanetGrid{
return grid; return grid;
} }
static void addCorner(int id, PlanetGrid grid, int t1, int t2, int t3){ public static void addCorner(int id, PlanetGrid grid, int t1, int t2, int t3){
Corner c = grid.corners[id]; Corner c = grid.corners[id];
Ptile[] t = {grid.tiles[t1], grid.tiles[t2], grid.tiles[t3]}; Ptile[] t = {grid.tiles[t1], grid.tiles[t2], grid.tiles[t3]};
c.v.set(t[0].v).add(t[1].v).add(t[2].v).nor(); c.v.set(t[0].v).add(t[1].v).add(t[2].v).nor();
@ -172,7 +173,7 @@ public class PlanetGrid{
} }
} }
static void addEdge(int id, PlanetGrid grid, int t1, int t2){ public static void addEdge(int id, PlanetGrid grid, int t1, int t2){
Edge e = grid.edges[id]; Edge e = grid.edges[id];
Ptile[] t = {grid.tiles[t1], grid.tiles[t2]}; Ptile[] t = {grid.tiles[t1], grid.tiles[t2]};
Corner[] c = { Corner[] c = {
@ -186,36 +187,36 @@ public class PlanetGrid{
} }
} }
static int pos(Ptile t, Ptile n){ public static int pos(Ptile t, Ptile n){
for(int i = 0; i < t.edgeCount; i++) for(int i = 0; i < t.edgeCount; i++)
if(t.tiles[i] == n) if(t.tiles[i] == n)
return i; return i;
return -1; return -1;
} }
static int pos(Ptile t, Corner c){ public static int pos(Ptile t, Corner c){
for(int i = 0; i < t.edgeCount; i++) for(int i = 0; i < t.edgeCount; i++)
if(t.corners[i] == c) if(t.corners[i] == c)
return i; return i;
return -1; return -1;
} }
static int pos(Corner c, Corner n){ public static int pos(Corner c, Corner n){
for(int i = 0; i < 3; i++) for(int i = 0; i < 3; i++)
if(c.corners[i] == n) if(c.corners[i] == n)
return i; return i;
return -1; return -1;
} }
static int Buildingount(int size){ public static int tileCount(int size){
return 10 * Mathf.pow(3, size) + 2; return 10 * Mathf.pow(3, size) + 2;
} }
static int cornerCount(int size){ public static int cornerCount(int size){
return 20 * Mathf.pow(3, size); return 20 * Mathf.pow(3, size);
} }
static int edgeCount(int size){ public static int edgeCount(int size){
return 30 * Mathf.pow(3, size); return 30 * Mathf.pow(3, size);
} }