99public abstract class Tile {
1010
1111 private static final Tile [] tiles = new Tile [256 ];
12+
1213 static {
13- /* VOID */ tiles [0 ] = new SolidTile (0 , 0 , 0 , Colours .get (0 , -1 , -1 , -1 ), 0xFF000000 );
14- /* STONE */ tiles [1 ] = new SolidTile (1 , 1 , 0 , Colours .get (-1 , 444 , 333 , -1 ), 0xFF555555 );
15- /* CHISELED_stone */ tiles [2 ] = new BasicTile (2 , 2 , 0 , Colours .get (-1 , 333 , 222 , -1 ), 0xFF666666 );
16- /* GRASS */ tiles [3 ] = new BasicTile (3 , 3 , 0 , Colours .get (-1 , 131 , 141 , -1 ), 0xFF00FF00 );
17- /* WATER */ tiles [4 ] = new AnimatedTile (4 , new int [][] { { 0 , 5 }, { 1 , 5 }, { 2 , 5 }, { 1 , 5 } }, Colours .get (-1 , 004 , 115 , -1 ), 0xFF0000FF , 1000 );
18- /* FLOWER_rose */ tiles [5 ] = new BasicTile (5 , 4 , 0 , Colours .get (131 , 151 , 510 , 553 ), 0xFFCCFF33 );
19- /* FLOWER_dandelion */ tiles [6 ] = new BasicTile (6 , 4 , 0 , Colours .get (131 , 151 , 553 , 510 ), 0xFFFFCC33 );
20- /* SAND */ tiles [7 ] = new BasicTile (7 , 5 , 0 , Colours .get (-1 , 553 , 554 , 555 ), 0xFFFFFF99 );
21- /* CHEST_a */ tiles [8 ] = new SolidTile (8 , 0 , 1 , Colours .get (333 , 111 , 420 , 000 ), 0xFFFF0001 );
22- /* CHEST_b */ tiles [9 ] = new SolidTile (9 , 1 , 1 , Colours .get (333 , 111 , 420 , 000 ), 0xFFFF0002 );
23- /* CARPET_red */ tiles [10 ] = new BasicTile (10 , 5 , 0 , Colours .get (-1 , 311 , 411 , 311 ), 0xFFAA3636 );
24- /* PORTAL */ tiles [11 ] = new AnimatedTile (11 , new int [][] { { 3 , 5 }, { 4 , 5 }, { 5 , 5 }, { 6 , 5 }, { 7 , 5 }, { 8 , 5 }, { 9 , 5 }, { 10 , 5 } }, Colours .get (-1 , 005 , 305 , -1 ), 0xFF00EAFF , 100 );
25- /* MAGMA */ tiles [12 ] = new AnimatedTile (12 , new int [][] { { 0 , 5 }, { 1 , 5 }, { 2 , 5 }, { 1 , 5 } }, Colours .get (-1 , 400 , 511 , -1 ), 0xFFF00F0F , 1000 );
26- /* DIRT */ tiles [13 ] = new BasicTile (13 , 3 , 0 , Colours .get (0 , 210 , 321 , -1 ), 0xFF442200 );
27- /* DIRT_WET */ tiles [14 ] = new AnimatedTile (14 , new int [][] { { 1 , 5 }, { 2 , 5 } }, Colours .get (-1 , 211 , 322 , -1 ), 0xFF663300 , 1500 );
14+ /* VOID */
15+ tiles [0 ] = new SolidTile (0 , 0 , 0 , Colours .get (0 , -1 , -1 , -1 ), 0xFF000000 );
16+ /* STONE */
17+ tiles [1 ] = new SolidTile (1 , 1 , 0 , Colours .get (-1 , 444 , 333 , -1 ), 0xFF555555 );
18+ /* CHISELED_stone */
19+ tiles [2 ] = new BasicTile (2 , 2 , 0 , Colours .get (-1 , 333 , 222 , -1 ), 0xFF666666 );
20+ /* GRASS */
21+ tiles [3 ] = new BasicTile (3 , 3 , 0 , Colours .get (-1 , 131 , 141 , -1 ), 0xFF00FF00 );
22+ /* WATER */
23+ tiles [4 ] = new AnimatedTile (4 , new int [][]{{0 , 5 }, {1 , 5 }, {2 , 5 }, {1 , 5 }}, Colours .get (-1 , 004 , 115 , -1 ), 0xFF0000FF , 1000 );
24+ /* FLOWER_rose */
25+ tiles [5 ] = new BasicTile (5 , 4 , 0 , Colours .get (131 , 151 , 510 , 553 ), 0xFFCCFF33 );
26+ /* FLOWER_dandelion */
27+ tiles [6 ] = new BasicTile (6 , 4 , 0 , Colours .get (131 , 151 , 553 , 510 ), 0xFFFFCC33 );
28+ /* SAND */
29+ tiles [7 ] = new BasicTile (7 , 5 , 0 , Colours .get (-1 , 553 , 554 , 555 ), 0xFFFFFF99 );
30+ /* CHEST_a */
31+ tiles [8 ] = new SolidTile (8 , 0 , 1 , Colours .get (333 , 111 , 420 , 000 ), 0xFFFF0001 );
32+ /* CHEST_b */
33+ tiles [9 ] = new SolidTile (9 , 1 , 1 , Colours .get (333 , 111 , 420 , 000 ), 0xFFFF0002 );
34+ /* CARPET_red */
35+ tiles [10 ] = new BasicTile (10 , 5 , 0 , Colours .get (-1 , 311 , 411 , 311 ), 0xFFAA3636 );
36+ /* PORTAL */
37+ tiles [11 ] = new AnimatedTile (11 , new int [][]{{3 , 5 }, {4 , 5 }, {5 , 5 }, {6 , 5 }, {7 , 5 }, {8 , 5 }, {9 , 5 }, {10 , 5 }}, Colours .get (-1 , 005 , 305 , -1 ), 0xFF00EAFF , 100 );
38+ /* MAGMA */
39+ tiles [12 ] = new AnimatedTile (12 , new int [][]{{0 , 5 }, {1 , 5 }, {2 , 5 }, {1 , 5 }}, Colours .get (-1 , 400 , 511 , -1 ), 0xFFF00F0F , 1000 );
40+ /* DIRT */
41+ tiles [13 ] = new BasicTile (13 , 3 , 0 , Colours .get (0 , 210 , 321 , -1 ), 0xFF442200 );
42+ /* DIRT_WET */
43+ tiles [14 ] = new AnimatedTile (14 , new int [][]{{1 , 5 }, {2 , 5 }}, Colours .get (-1 , 211 , 322 , -1 ), 0xFF663300 , 1500 );
2844 }
45+
2946 protected final byte id ;
30- protected boolean solid ;
3147 protected final boolean emitter ;
3248 protected final int levelColour ;
49+ protected boolean solid ;
3350
3451 protected Tile (int id , boolean solid , boolean emitter , int levelColour ) {
3552 this .id = (byte ) id ;
3653 this .solid = solid ;
3754 this .emitter = emitter ;
3855 this .levelColour = levelColour ;
3956
40- if (tiles [id ] != null ) {
41- throw new RuntimeException ("Duplicate tile id: " + id );
42- }
4357
4458 tiles [id ] = this ;
4559 }
4660
47- public byte getId () {
48- return id ;
49- }
50-
51- public boolean isSolid () {
52- return solid ;
53- }
54-
55- public boolean isEmitter () {
56- return emitter ;
57- }
58-
59- public abstract void tick ();
60-
61- public abstract void render (Screen screen , LevelHandler level , int x , int y );
62-
63- public int getLevelColour () {
64- return levelColour ;
65- }
66-
6761 public static Tile getTile (int id ) {
6862 return tiles [id ];
6963 }
@@ -76,12 +70,31 @@ public static Tile getGrass() {
7670 return getTile (2 );
7771 }
7872
79-
8073 public static Tile getVoid () {
8174 return getTile (0 );
8275 }
8376
8477 public static Tile [] getTiles () {
8578 return tiles ;
8679 }
80+
81+ public byte getId () {
82+ return id ;
83+ }
84+
85+ public boolean isSolid () {
86+ return solid ;
87+ }
88+
89+ public boolean isEmitter () {
90+ return emitter ;
91+ }
92+
93+ public abstract void tick ();
94+
95+ public abstract void render (Screen screen , LevelHandler level , int x , int y );
96+
97+ public int getLevelColour () {
98+ return levelColour ;
99+ }
87100}
0 commit comments