mirror of
https://github.com/encounter/dynmap.git
synced 2026-03-30 11:08:39 -07:00
Compare commits
198 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e2ea48ed1b | |||
| 73b249cf96 | |||
| 7e094ee0e8 | |||
| 910a2269a8 | |||
| 6fedc7169e | |||
| ca9d26ef99 | |||
| 8a3c9694a8 | |||
| 3d8381e621 | |||
| ec5712ab56 | |||
| 3f8814dfbc | |||
| 54589cd358 | |||
| 0a790b6014 | |||
| 36653a3187 | |||
| f886fbc614 | |||
| db88f4b9ff | |||
| fc824013b7 | |||
| 0e118af51e | |||
| f1c04f6198 | |||
| 7f7b8c7fcb | |||
| 43b7f22285 | |||
| 7f631379aa | |||
| 1d85fdd75c | |||
| 4db2d81fc1 | |||
| e986ab4bfb | |||
| f6a93634fa | |||
| 59abfff6d0 | |||
| 7830c6a1c2 | |||
| 040a604e0c | |||
| 616f46ba26 | |||
| 6c15321034 | |||
| bbb5db3524 | |||
| e696988e34 | |||
| e0c0729d08 | |||
| 7cee034fbb | |||
| 8be7e8f68a | |||
| 957f6a8dce | |||
| de94712fbd | |||
| ab963fca70 | |||
| 34fbe34ce6 | |||
| 1d06fef52b | |||
| 40e28749b8 | |||
| 7ba72941dc | |||
| c953097403 | |||
| 079f9dc8cd | |||
| 05511f0495 | |||
| baf29dfa7c | |||
| ca62003e06 | |||
| 2eb6d47d87 | |||
| 90ef8a4faf | |||
| 4a6d30f8a2 | |||
| 827b172bed | |||
| 14cc26a0f5 | |||
| e9dc82402f | |||
| 655c0732b7 | |||
| d032909412 | |||
| 8a05456703 | |||
| 3767b0d9ba | |||
| bd0ddb160b | |||
| f4a8f3ab03 | |||
| 3455a8a3d4 | |||
| 2338c48f02 | |||
| 36d8a701e0 | |||
| 23ba798951 | |||
| f80cfee32c | |||
| 9579896f30 | |||
| 975cfdef99 | |||
| c0309fb36a | |||
| 804fa769a2 | |||
| 4ff0819230 | |||
| 5ee681b972 | |||
| 22119defdb | |||
| d70ea37b31 | |||
| 5c064eab2b | |||
| d6b93868a7 | |||
| 2c3ec9e001 | |||
| 96a2978548 | |||
| 820bd3993e | |||
| e3501142cd | |||
| 978a203aa9 | |||
| 1253ac2e6a | |||
| f335641eab | |||
| 11d5e29a9f | |||
| a2df443aeb | |||
| e67bfad65a | |||
| 0385de578d | |||
| 7bf9d02cba | |||
| 9e55509e62 | |||
| b5fed110ec | |||
| abf909e047 | |||
| c3f6c38f49 | |||
| ded2fa815c | |||
| e0752eba5b | |||
| c857a1d002 | |||
| c5287b8427 | |||
| 3e2d518ed5 | |||
| 37edf2296c | |||
| f05dfac0a4 | |||
| 68cb59997e | |||
| 3f2ee0fc76 | |||
| b98ccb8c94 | |||
| 99c38f0ee7 | |||
| 150f3ae6f4 | |||
| 0cb9a2c2fe | |||
| 0a093ad245 | |||
| 66f647db31 | |||
| 573c03b896 | |||
| bd182ef9df | |||
| 842d255c07 | |||
| aa74abe4b6 | |||
| 6c2e7cecfe | |||
| b26dfa8c2f | |||
| 79856bd93e | |||
| 5f6f453dc8 | |||
| 954a64c93d | |||
| 8cb615e291 | |||
| 515b2f4afc | |||
| 560fe3c539 | |||
| dd4d448fc5 | |||
| 7d79301293 | |||
| 6348fbe789 | |||
| 0d97a93100 | |||
| e897b5dbef | |||
| 8fe802f114 | |||
| df81b096d7 | |||
| 658a4aba3f | |||
| 9b0faa1325 | |||
| 336d4e7535 | |||
| fa2e80a916 | |||
| 085e06eb43 | |||
| ad6f6f4316 | |||
| 0704413829 | |||
| 1548ae72d6 | |||
| 0627e2675f | |||
| 9fae2440b8 | |||
| da44b9b00b | |||
| dd81d8f989 | |||
| 25bf6806be | |||
| 886248e115 | |||
| bc17045196 | |||
| 7cf9f2f1e4 | |||
| 7d89fe094a | |||
| 8524eecad5 | |||
| bee5da8e9f | |||
| e15d3cd8cc | |||
| 33add48697 | |||
| 98d18260c4 | |||
| 910be17c42 | |||
| 6299deee82 | |||
| ff57c9e183 | |||
| ea5f9a8a96 | |||
| afc6f429f0 | |||
| 36ea3c20ca | |||
| aacdd77f3e | |||
| a369f02083 | |||
| 09637f293e | |||
| e81564c1ae | |||
| ebfe2a004b | |||
| 3076b28c24 | |||
| e2746b7cbc | |||
| 62bc4f2cd0 | |||
| fd14f9bc84 | |||
| f824a17704 | |||
| ba98145086 | |||
| 571c2acfc3 | |||
| cab056ef5c | |||
| 8c4315be40 | |||
| c808ddcc45 | |||
| d5153a6f4c | |||
| 352d1843e0 | |||
| 0f986b4c87 | |||
| b55989f696 | |||
| b0227d5ce7 | |||
| 32ccbf4792 | |||
| df3027dc8a | |||
| d53ef57ae1 | |||
| 00f16304a4 | |||
| 3f19c1ab3a | |||
| 9570f03ec6 | |||
| 3d868d4700 | |||
| e54c1fa7d8 | |||
| d6b5524aca | |||
| 8a4e1ebfc2 | |||
| 009c3a9429 | |||
| a77f002054 | |||
| 402d7f9542 | |||
| 6de49f89d6 | |||
| 5adbe6bd5e | |||
| 89f63a9db2 | |||
| 21c68fa1b2 | |||
| 37a9809f67 | |||
| dcb3e8e2ff | |||
| 34ae7d21fd | |||
| 25f7dbb312 | |||
| 7d2d0b4d87 | |||
| b51da5d401 | |||
| 754bc6c51e | |||
| 270f64c594 | |||
| f950fb4d85 |
+94
-28
@@ -30,8 +30,13 @@ Iron Ore
|
||||
15 136 130 127 255 108 104 101 255 68 65 63 255 54 52 50 255
|
||||
Coal Ore
|
||||
16 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Wood
|
||||
17 102 81 51 255 81 64 40 255 51 40 25 255 40 32 20 255
|
||||
Wood - Normal
|
||||
17 102 81 51 255 125 102 63 255 78 64 39 255 40 32 20 255
|
||||
17:0 102 81 51 255 125 102 63 255 78 64 39 255 40 32 20 255
|
||||
Wood - Spruce (Red/dark wood)
|
||||
17:1 75 44 24 255 125 102 63 255 78 64 39 255 30 18 10 255
|
||||
Wood - Birch (light wood)
|
||||
17:2 191 191 191 255 125 102 63 255 78 64 39 255 76 76 76 255
|
||||
Leaves
|
||||
18 60 192 41 100 48 153 32 100 30 96 20 100 24 76 16 100
|
||||
Sponge
|
||||
@@ -114,21 +119,31 @@ Iron Block
|
||||
Double Stone Slab
|
||||
43 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:6 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Double Stone Slab - Sandstone
|
||||
43:1 218 210 158 255 174 168 126 255 109 105 79 255 87 84 63 255
|
||||
Double Stone Slab - Wood
|
||||
43:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
Double Stone Slab - Cobblestone
|
||||
43:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Double Stone Slab - Brick
|
||||
43:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Double Stone Slab - Stone Brick
|
||||
43:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Stone Slab
|
||||
44 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:6 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Stone Slab - Sandstone
|
||||
44:1 218 210 158 255 174 168 126 255 109 105 79 255 87 84 63 255
|
||||
Stone Slab - Wood
|
||||
44:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
Stone Slab - Cobblestone
|
||||
44:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Stone Slab - Brick
|
||||
44:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Stone Slab - Stone Brick
|
||||
44:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Brick
|
||||
45 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
TNT
|
||||
@@ -147,6 +162,7 @@ Monster Spawner
|
||||
52 0 150 110 196 0 150 130 196 0 150 110 196 0 150 130 196
|
||||
Wooden Stair
|
||||
53 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
53:4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
Chest
|
||||
54 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
Redstone Wire
|
||||
@@ -233,32 +249,82 @@ Locked Chest
|
||||
95 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
Trap Door
|
||||
96 111 91 54 255 88 72 43 255 55 45 27 255 44 36 21 255
|
||||
Biome Rainforest - Dark Green
|
||||
[RAINFOREST] 49 67 21 255 39 53 17 255 24 34 10 255 19 27 8 255
|
||||
Biome Swampland - Brown
|
||||
[SWAMPLAND] 75 44 24 255 60 35 19 255 37 22 12 255 30 18 10 255
|
||||
Biome Seasonal Forest - Light Green
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 131 33 255 26 82 21 255 20 65 17 255
|
||||
Biome Forest - Light Gray
|
||||
[FOREST] 138 145 145 255 110 115 115 255 69 72 72 255 55 57 57 255
|
||||
Biome Savanna - Dark Gray
|
||||
[SAVANNA] 58 58 58 255 47 47 47 255 29 29 29 255 23 23 23 255
|
||||
Biome Shrubland - Yellow
|
||||
[SHRUBLAND] 170 158 24 255 135 126 19 255 85 79 12 255 67 62 10 255
|
||||
Biome Taiga - Cyan
|
||||
[TAIGA] 34 102 131 255 27 81 104 255 17 51 65 255 13 40 52 255
|
||||
Biome Desert - Orange
|
||||
[DESERT] 204 111 48 255 162 89 38 255 102 56 24 255 81 44 19 255
|
||||
Biome Plains - Magenta
|
||||
[PLAINS] 166 66 175 255 133 53 140 255 83 33 87 255 66 26 69 255
|
||||
Biome Ice Desert - Dark Blue
|
||||
[ICE_DESERT] 26 33 103 255 20 26 80 255 13 17 50 255 9 14 40 255
|
||||
Biome Tundra - White
|
||||
[TUNDRA] 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255
|
||||
Biome Hell - Pink
|
||||
[HELL] 190 115 135 255 151 92 108 255 95 57 67 255 75 46 53 255
|
||||
Biome Sky - Blue
|
||||
[SKY] 34 44 134 255 27 35 107 255 17 22 67 255 13 18 53 255
|
||||
Stone - Sliverfish
|
||||
97 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Stone Brick
|
||||
98 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Huge Brown Mushroom
|
||||
99 204 153 120 255 145 109 85 255 114 86 67 255 73 64 58 255
|
||||
Huge Red Mushroom
|
||||
100 255 43 43 255 196 29 38 255 186 105 109 255 124 64 64 255
|
||||
Iron Bars
|
||||
101 191 191 191 96 152 152 152 96 95 95 95 96 76 76 76 96
|
||||
Glass Pane
|
||||
102 255 255 255 64 204 204 204 64 127 127 127 64 102 102 102 64
|
||||
Melon
|
||||
103 193 193 65 255 174 174 47 255 97 97 5 255 76 76 20 255
|
||||
Pumpkin Stem
|
||||
104 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
Melon Stem
|
||||
105 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
Vines
|
||||
106 60 192 41 100 48 153 32 100 30 96 20 100 24 76 16 100
|
||||
Fence Gate
|
||||
107 127 98 49 96 95 72 33 96 48 34 9 96 32 21 21 96
|
||||
Brick Stairs
|
||||
108 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Stone Stairs
|
||||
109 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Mycelium
|
||||
110 110 98 104 255 88 78 83 255 55 49 52 255 44 39 42 255
|
||||
Lilly pad
|
||||
111 117 176 73 255 93 140 58 255 58 88 36 255 46 70 29 255
|
||||
Nether brick
|
||||
112 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
Nether brick fence
|
||||
113 166 89 89 96 141 80 62 96 135 15 15 96 96 6 6 96
|
||||
Nether brick stairs
|
||||
114 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
Nether Wart
|
||||
115 142 19 21 96 113 15 17 96 71 10 10 96 57 7 8 96
|
||||
Enchantment table
|
||||
116 88 23 22 255 29 10 16 255 17 7 10 255 15 5 8 255
|
||||
Brewing stand
|
||||
117 114 114 114 96 91 91 91 96 67 67 67 96 46 46 46 96
|
||||
Cauldron
|
||||
118 74 74 74 255 59 59 59 255 37 37 37 255 30 30 30 255
|
||||
Air portal
|
||||
119 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Air portal frame
|
||||
120 113 133 104 255 90 106 83 255 56 66 52 255 45 54 42 255
|
||||
White stone
|
||||
121 224 226 169 255 179 180 135 255 112 113 85 255 90 90 66 255
|
||||
Dragon Egg
|
||||
122 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Biome Mapping
|
||||
[RAINFOREST] 49 67 21 255 39 54 17 255 25 34 11 255 20 27 8 255
|
||||
[SWAMPLAND] 64 128 0 255 51 102 0 255 32 64 0 255 26 51 0 255
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 132 34 255 26 83 21 255 20 66 17 255
|
||||
[FOREST] 0 128 64 255 0 102 51 255 0 64 32 255 0 51 26 255
|
||||
[SAVANNA] 58 58 58 255 46 46 46 255 29 29 29 255 23 23 23 255
|
||||
[SHRUBLAND] 170 158 24 255 136 126 19 255 85 79 12 255 68 63 10 255
|
||||
[TAIGA] 204 255 102 255 163 204 82 255 102 128 51 255 82 102 41 255
|
||||
[DESERT] 255 255 102 255 204 204 82 255 128 128 51 255 102 102 41 255
|
||||
[PLAINS] 255 204 102 255 204 163 82 255 128 102 51 255 102 82 41 255
|
||||
[ICE_DESERT] 26 33 103 255 21 26 82 255 13 17 52 255 10 13 41 255
|
||||
[TUNDRA] 222 222 222 255 178 178 178 255 111 111 111 255 89 89 89 255
|
||||
[HELL] 255 0 0 255 204 0 0 255 128 0 0 255 102 0 0 255
|
||||
[SKY] 102 204 255 255 82 163 204 255 51 102 128 255 41 82 102 255
|
||||
[OCEAN] 0 0 255 255 0 0 204 255 0 0 128 255 0 0 102 255
|
||||
[RIVER] 0 128 255 255 0 102 204 255 0 64 128 255 0 51 102 255
|
||||
[EXTREME_HILLS] 128 64 0 255 102 51 0 255 64 32 0 255 51 26 0 255
|
||||
[FROZEN_OCEAN] 102 255 204 255 82 204 163 255 51 128 102 255 41 102 82 255
|
||||
[FROZEN_RIVER] 102 102 255 255 82 82 204 255 51 51 128 255 41 41 102 255
|
||||
[ICE_PLAINS] 102 255 255 255 82 204 204 255 51 128 128 255 41 102 102 255
|
||||
[ICE_MOUNTAINS] 255 255 255 255 204 204 204 255 128 128 128 255 102 102 102 255
|
||||
[MUSHROOM_ISLAND] 255 111 207 255 204 89 166 255 128 56 104 255 102 44 83 255
|
||||
[MUSHROOM_SHORE] 255 0 128 255 204 0 102 255 128 0 64 255 102 0 51 255
|
||||
Rainfall/Temperature Mapping
|
||||
[RAINFALL-0.0] 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
[RAINFALL-1.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
[TEMPERATURE-0.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
|
||||
+94
-28
@@ -30,8 +30,13 @@ Iron Ore
|
||||
15 136 130 127 255 108 104 101 255 68 65 63 255 54 52 50 255
|
||||
Coal Ore
|
||||
16 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Wood
|
||||
17 102 81 51 255 81 64 40 255 51 40 25 255 40 32 20 255
|
||||
Wood - Normal
|
||||
17 102 81 51 255 125 102 63 255 78 64 39 255 40 32 20 255
|
||||
17:0 102 81 51 255 125 102 63 255 78 64 39 255 40 32 20 255
|
||||
Wood - Spruce (Red/dark wood)
|
||||
17:1 75 44 24 255 125 102 63 255 78 64 39 255 30 18 10 255
|
||||
Wood - Birch (light wood)
|
||||
17:2 191 191 191 255 125 102 63 255 78 64 39 255 76 76 76 255
|
||||
Leaves
|
||||
18 27 69 37 180 22 57 31 180 19 48 25 180 22 57 31 180
|
||||
Sponge
|
||||
@@ -114,21 +119,31 @@ Iron Block
|
||||
Double Stone Slab
|
||||
43 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:6 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Double Stone Slab - Sandstone
|
||||
43:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255
|
||||
Double Stone Slab - Wood
|
||||
43:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
Double Stone Slab - Cobblestone
|
||||
43:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Double Stone Slab - Brick
|
||||
43:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Double Stone Slab - Stone Brick
|
||||
43:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Stone Slab
|
||||
44 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:6 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Stone Slab - Sandstone
|
||||
44:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255
|
||||
Stone Slab - Wood
|
||||
44:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
Stone Slab - Cobblestone
|
||||
44:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Stone Slab - Brick
|
||||
44:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Stone Slab - Stone Brick
|
||||
44:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Brick
|
||||
45 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
TNT
|
||||
@@ -147,6 +162,7 @@ Monster Spawner
|
||||
52 0 150 110 196 0 150 130 196 0 150 110 196 0 150 130 196
|
||||
Wooden Stair
|
||||
53 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
53:4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
Chest
|
||||
54 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
Redstone Wire
|
||||
@@ -233,32 +249,82 @@ Locked Chest
|
||||
95 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
Trap Door
|
||||
96 111 91 54 255 88 72 43 255 55 45 27 255 44 36 21 255
|
||||
Biome Rainforest - Dark Green
|
||||
[RAINFOREST] 49 67 21 255 39 53 17 255 24 34 10 255 19 27 8 255
|
||||
Biome Swampland - Brown
|
||||
[SWAMPLAND] 75 44 24 255 60 35 19 255 37 22 12 255 30 18 10 255
|
||||
Biome Seasonal Forest - Light Green
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 131 33 255 26 82 21 255 20 65 17 255
|
||||
Biome Forest - Light Gray
|
||||
[FOREST] 138 145 145 255 110 115 115 255 69 72 72 255 55 57 57 255
|
||||
Biome Savanna - Dark Gray
|
||||
[SAVANNA] 58 58 58 255 47 47 47 255 29 29 29 255 23 23 23 255
|
||||
Biome Shrubland - Yellow
|
||||
[SHRUBLAND] 170 158 24 255 135 126 19 255 85 79 12 255 67 62 10 255
|
||||
Biome Taiga - Cyan
|
||||
[TAIGA] 34 102 131 255 27 81 104 255 17 51 65 255 13 40 52 255
|
||||
Biome Desert - Orange
|
||||
[DESERT] 204 111 48 255 162 89 38 255 102 56 24 255 81 44 19 255
|
||||
Biome Plains - Magenta
|
||||
[PLAINS] 166 66 175 255 133 53 140 255 83 33 87 255 66 26 69 255
|
||||
Biome Ice Desert - Dark Blue
|
||||
[ICE_DESERT] 26 33 103 255 20 26 80 255 13 17 50 255 9 14 40 255
|
||||
Biome Tundra - White
|
||||
[TUNDRA] 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255
|
||||
Biome Hell - Pink
|
||||
[HELL] 190 115 135 255 151 92 108 255 95 57 67 255 75 46 53 255
|
||||
Biome Sky - Blue
|
||||
[SKY] 34 44 134 255 27 35 107 255 17 22 67 255 13 18 53 255
|
||||
Stone - Sliverfish
|
||||
97 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Stone Brick
|
||||
98 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Huge Brown Mushroom
|
||||
99 204 153 120 255 145 109 85 255 114 86 67 255 73 64 58 255
|
||||
Huge Red Mushroom
|
||||
100 255 43 43 255 196 29 38 255 186 105 109 255 124 64 64 255
|
||||
Iron Bars
|
||||
101 191 191 191 96 152 152 152 96 95 95 95 96 76 76 76 96
|
||||
Glass Pane
|
||||
102 255 255 255 64 204 204 204 64 127 127 127 64 102 102 102 64
|
||||
Melon
|
||||
103 193 193 65 255 174 174 47 255 97 97 5 255 76 76 20 255
|
||||
Pumpkin Stem
|
||||
104 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
Melon Stem
|
||||
105 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
Vines
|
||||
106 60 192 41 100 48 153 32 100 30 96 20 100 24 76 16 100
|
||||
Fence Gate
|
||||
107 127 98 49 96 95 72 33 96 48 34 9 96 32 21 21 96
|
||||
Brick Stairs
|
||||
108 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Stone Stairs
|
||||
109 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Mycelium
|
||||
110 110 98 104 255 88 78 83 255 55 49 52 255 44 39 42 255
|
||||
Lilly pad
|
||||
111 117 176 73 255 93 140 58 255 58 88 36 255 46 70 29 255
|
||||
Nether brick
|
||||
112 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
Nether brick fence
|
||||
113 166 89 89 96 141 80 62 96 135 15 15 96 96 6 6 96
|
||||
Nether brick stairs
|
||||
114 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
Nether Wart
|
||||
115 142 19 21 96 113 15 17 96 71 10 10 96 57 7 8 96
|
||||
Enchantment table
|
||||
116 88 23 22 255 29 10 16 255 17 7 10 255 15 5 8 255
|
||||
Brewing stand
|
||||
117 114 114 114 96 91 91 91 96 67 67 67 96 46 46 46 96
|
||||
Cauldron
|
||||
118 74 74 74 255 59 59 59 255 37 37 37 255 30 30 30 255
|
||||
Air portal
|
||||
119 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Air portal frame
|
||||
120 113 133 104 255 90 106 83 255 56 66 52 255 45 54 42 255
|
||||
White stone
|
||||
121 224 226 169 255 179 180 135 255 112 113 85 255 90 90 66 255
|
||||
Dragon Egg
|
||||
122 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Biome Mapping
|
||||
[RAINFOREST] 49 67 21 255 39 54 17 255 25 34 11 255 20 27 8 255
|
||||
[SWAMPLAND] 64 128 0 255 51 102 0 255 32 64 0 255 26 51 0 255
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 132 34 255 26 83 21 255 20 66 17 255
|
||||
[FOREST] 0 128 64 255 0 102 51 255 0 64 32 255 0 51 26 255
|
||||
[SAVANNA] 58 58 58 255 46 46 46 255 29 29 29 255 23 23 23 255
|
||||
[SHRUBLAND] 170 158 24 255 136 126 19 255 85 79 12 255 68 63 10 255
|
||||
[TAIGA] 204 255 102 255 163 204 82 255 102 128 51 255 82 102 41 255
|
||||
[DESERT] 255 255 102 255 204 204 82 255 128 128 51 255 102 102 41 255
|
||||
[PLAINS] 255 204 102 255 204 163 82 255 128 102 51 255 102 82 41 255
|
||||
[ICE_DESERT] 26 33 103 255 21 26 82 255 13 17 52 255 10 13 41 255
|
||||
[TUNDRA] 222 222 222 255 178 178 178 255 111 111 111 255 89 89 89 255
|
||||
[HELL] 255 0 0 255 204 0 0 255 128 0 0 255 102 0 0 255
|
||||
[SKY] 102 204 255 255 82 163 204 255 51 102 128 255 41 82 102 255
|
||||
[OCEAN] 0 0 255 255 0 0 204 255 0 0 128 255 0 0 102 255
|
||||
[RIVER] 0 128 255 255 0 102 204 255 0 64 128 255 0 51 102 255
|
||||
[EXTREME_HILLS] 128 64 0 255 102 51 0 255 64 32 0 255 51 26 0 255
|
||||
[FROZEN_OCEAN] 102 255 204 255 82 204 163 255 51 128 102 255 41 102 82 255
|
||||
[FROZEN_RIVER] 102 102 255 255 82 82 204 255 51 51 128 255 41 41 102 255
|
||||
[ICE_PLAINS] 102 255 255 255 82 204 204 255 51 128 128 255 41 102 102 255
|
||||
[ICE_MOUNTAINS] 255 255 255 255 204 204 204 255 128 128 128 255 102 102 102 255
|
||||
[MUSHROOM_ISLAND] 255 111 207 255 204 89 166 255 128 56 104 255 102 44 83 255
|
||||
[MUSHROOM_SHORE] 255 0 128 255 204 0 102 255 128 0 64 255 102 0 51 255
|
||||
Rainfall/Temperature Mapping
|
||||
[RAINFALL-0.0] 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
[RAINFALL-1.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
[TEMPERATURE-0.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
|
||||
+94
-28
@@ -30,8 +30,13 @@ Iron Ore
|
||||
15 136 130 127 255 108 104 101 255 68 65 63 255 54 52 50 255
|
||||
Coal Ore
|
||||
16 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Wood
|
||||
17 102 81 51 255 81 64 40 255 51 40 25 255 40 32 20 255
|
||||
Wood - Normal
|
||||
17 102 81 51 255 125 102 63 255 78 64 39 255 40 32 20 255
|
||||
17:0 102 81 51 255 125 102 63 255 78 64 39 255 40 32 20 255
|
||||
Wood - Spruce (Red/dark wood)
|
||||
17:1 75 44 24 255 125 102 63 255 78 64 39 255 30 18 10 255
|
||||
Wood - Birch (light wood)
|
||||
17:2 191 191 191 255 125 102 63 255 78 64 39 255 76 76 76 255
|
||||
Leaves
|
||||
18 47 99 32 255 34 86 20 255 24 66 14 255 23 57 13 255
|
||||
Sponge
|
||||
@@ -114,21 +119,31 @@ Iron Block
|
||||
Double Stone Slab
|
||||
43 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:6 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Double Stone Slab - Sandstone
|
||||
43:1 218 210 158 255 174 168 126 255 109 105 79 255 87 84 63 255
|
||||
Double Stone Slab - Wood
|
||||
43:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
Double Stone Slab - Cobblestone
|
||||
43:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Double Stone Slab - Brick
|
||||
43:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Double Stone Slab - Stone Brick
|
||||
43:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Stone Slab
|
||||
44 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:0 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:6 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Stone Slab - Sandstone
|
||||
44:1 218 210 158 255 174 168 126 255 109 105 79 255 87 84 63 255
|
||||
Stone Slab - Wood
|
||||
44:2 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
Stone Slab - Cobblestone
|
||||
44:3 115 115 115 255 92 92 92 255 57 57 57 255 46 46 46 255
|
||||
Stone Slab - Brick
|
||||
44:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Stone Slab - Stone Brick
|
||||
44:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
Brick
|
||||
45 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
TNT
|
||||
@@ -147,6 +162,7 @@ Monster Spawner
|
||||
52 0 150 110 196 0 150 130 196 0 150 110 196 0 150 130 196
|
||||
Wooden Stair
|
||||
53 157 128 79 255 125 102 63 255 78 64 39 255 62 51 31 255
|
||||
53:4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
Chest
|
||||
54 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
Redstone Wire
|
||||
@@ -233,32 +249,82 @@ Locked Chest
|
||||
95 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
Trap Door
|
||||
96 111 91 54 255 88 72 43 255 55 45 27 255 44 36 21 255
|
||||
Biome Rainforest - Dark Green
|
||||
[RAINFOREST] 49 67 21 255 39 53 17 255 24 34 10 255 19 27 8 255
|
||||
Biome Swampland - Brown
|
||||
[SWAMPLAND] 75 44 24 255 60 35 19 255 37 22 12 255 30 18 10 255
|
||||
Biome Seasonal Forest - Light Green
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 131 33 255 26 82 21 255 20 65 17 255
|
||||
Biome Forest - Light Gray
|
||||
[FOREST] 138 145 145 255 110 115 115 255 69 72 72 255 55 57 57 255
|
||||
Biome Savanna - Dark Gray
|
||||
[SAVANNA] 58 58 58 255 47 47 47 255 29 29 29 255 23 23 23 255
|
||||
Biome Shrubland - Yellow
|
||||
[SHRUBLAND] 170 158 24 255 135 126 19 255 85 79 12 255 67 62 10 255
|
||||
Biome Taiga - Cyan
|
||||
[TAIGA] 34 102 131 255 27 81 104 255 17 51 65 255 13 40 52 255
|
||||
Biome Desert - Orange
|
||||
[DESERT] 204 111 48 255 162 89 38 255 102 56 24 255 81 44 19 255
|
||||
Biome Plains - Magenta
|
||||
[PLAINS] 166 66 175 255 133 53 140 255 83 33 87 255 66 26 69 255
|
||||
Biome Ice Desert - Dark Blue
|
||||
[ICE_DESERT] 26 33 103 255 20 26 80 255 13 17 50 255 9 14 40 255
|
||||
Biome Tundra - White
|
||||
[TUNDRA] 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255
|
||||
Biome Hell - Pink
|
||||
[HELL] 190 115 135 255 151 92 108 255 95 57 67 255 75 46 53 255
|
||||
Biome Sky - Blue
|
||||
[SKY] 34 44 134 255 27 35 107 255 17 22 67 255 13 18 53 255
|
||||
Stone - Sliverfish
|
||||
97 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Stone Brick
|
||||
98 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Huge Brown Mushroom
|
||||
99 204 153 120 255 145 109 85 255 114 86 67 255 73 64 58 255
|
||||
Huge Red Mushroom
|
||||
100 255 43 43 255 196 29 38 255 186 105 109 255 124 64 64 255
|
||||
Iron Bars
|
||||
101 191 191 191 96 152 152 152 96 95 95 95 96 76 76 76 96
|
||||
Glass Pane
|
||||
102 255 255 255 64 204 204 204 64 127 127 127 64 102 102 102 64
|
||||
Melon
|
||||
103 193 193 65 255 174 174 47 255 97 97 5 255 76 76 20 255
|
||||
Pumpkin Stem
|
||||
104 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
Melon Stem
|
||||
105 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
Vines
|
||||
106 60 192 41 100 48 153 32 100 30 96 20 100 24 76 16 100
|
||||
Fence Gate
|
||||
107 127 98 49 96 95 72 33 96 48 34 9 96 32 21 21 96
|
||||
Brick Stairs
|
||||
108 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
Stone Stairs
|
||||
109 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
Mycelium
|
||||
110 110 98 104 255 88 78 83 255 55 49 52 255 44 39 42 255
|
||||
Lilly pad
|
||||
111 117 176 73 255 93 140 58 255 58 88 36 255 46 70 29 255
|
||||
Nether brick
|
||||
112 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
Nether brick fence
|
||||
113 166 89 89 96 141 80 62 96 135 15 15 96 96 6 6 96
|
||||
Nether brick stairs
|
||||
114 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
Nether Wart
|
||||
115 142 19 21 96 113 15 17 96 71 10 10 96 57 7 8 96
|
||||
Enchantment table
|
||||
116 88 23 22 255 29 10 16 255 17 7 10 255 15 5 8 255
|
||||
Brewing stand
|
||||
117 114 114 114 96 91 91 91 96 67 67 67 96 46 46 46 96
|
||||
Cauldron
|
||||
118 74 74 74 255 59 59 59 255 37 37 37 255 30 30 30 255
|
||||
Air portal
|
||||
119 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Air portal frame
|
||||
120 113 133 104 255 90 106 83 255 56 66 52 255 45 54 42 255
|
||||
White stone
|
||||
121 224 226 169 255 179 180 135 255 112 113 85 255 90 90 66 255
|
||||
Dragon Egg
|
||||
122 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Biome Mapping
|
||||
[RAINFOREST] 49 67 21 255 39 54 17 255 25 34 11 255 20 27 8 255
|
||||
[SWAMPLAND] 64 128 0 255 51 102 0 255 32 64 0 255 26 51 0 255
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 132 34 255 26 83 21 255 20 66 17 255
|
||||
[FOREST] 0 128 64 255 0 102 51 255 0 64 32 255 0 51 26 255
|
||||
[SAVANNA] 58 58 58 255 46 46 46 255 29 29 29 255 23 23 23 255
|
||||
[SHRUBLAND] 170 158 24 255 136 126 19 255 85 79 12 255 68 63 10 255
|
||||
[TAIGA] 204 255 102 255 163 204 82 255 102 128 51 255 82 102 41 255
|
||||
[DESERT] 255 255 102 255 204 204 82 255 128 128 51 255 102 102 41 255
|
||||
[PLAINS] 255 204 102 255 204 163 82 255 128 102 51 255 102 82 41 255
|
||||
[ICE_DESERT] 26 33 103 255 21 26 82 255 13 17 52 255 10 13 41 255
|
||||
[TUNDRA] 222 222 222 255 178 178 178 255 111 111 111 255 89 89 89 255
|
||||
[HELL] 255 0 0 255 204 0 0 255 128 0 0 255 102 0 0 255
|
||||
[SKY] 102 204 255 255 82 163 204 255 51 102 128 255 41 82 102 255
|
||||
[OCEAN] 0 0 255 255 0 0 204 255 0 0 128 255 0 0 102 255
|
||||
[RIVER] 0 128 255 255 0 102 204 255 0 64 128 255 0 51 102 255
|
||||
[EXTREME_HILLS] 128 64 0 255 102 51 0 255 64 32 0 255 51 26 0 255
|
||||
[FROZEN_OCEAN] 102 255 204 255 82 204 163 255 51 128 102 255 41 102 82 255
|
||||
[FROZEN_RIVER] 102 102 255 255 82 82 204 255 51 51 128 255 41 41 102 255
|
||||
[ICE_PLAINS] 102 255 255 255 82 204 204 255 51 128 128 255 41 102 102 255
|
||||
[ICE_MOUNTAINS] 255 255 255 255 204 204 204 255 128 128 128 255 102 102 102 255
|
||||
[MUSHROOM_ISLAND] 255 111 207 255 204 89 166 255 128 56 104 255 102 44 83 255
|
||||
[MUSHROOM_SHORE] 255 0 128 255 204 0 102 255 128 0 64 255 102 0 51 255
|
||||
Rainfall/Temperature Mapping
|
||||
[RAINFALL-0.0] 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
[RAINFALL-1.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
[TEMPERATURE-0.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
|
||||
+60
-26
@@ -14,6 +14,9 @@
|
||||
15 231 174 113 255 193 145 94 255 161 121 79 255 193 145 94 255
|
||||
16 56 60 70 255 46 50 58 255 39 42 49 255 46 50 58 255
|
||||
17 119 97 74 255 99 81 62 255 83 68 52 255 99 81 62 255
|
||||
17:0 119 97 74 255 99 81 62 255 83 68 52 255 99 81 62 255
|
||||
17:1 75 44 24 255 125 102 63 255 78 64 39 255 30 18 10 255
|
||||
17:2 191 191 191 255 125 102 63 255 78 64 39 255 76 76 76 255
|
||||
18 27 69 37 180 22 57 31 180 19 48 25 180 22 57 31 180
|
||||
19 193 193 65 255 174 174 47 255 97 97 5 255 76 76 20 255
|
||||
20 178 217 223 90 148 181 186 90 124 151 155 90 148 181 186 90
|
||||
@@ -59,11 +62,17 @@
|
||||
43:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255
|
||||
43:2 109 80 60 255 91 67 50 255 76 56 41 255 91 67 50 255
|
||||
43:3 118 112 96 255 98 93 80 255 82 78 67 255 98 93 80 255
|
||||
43:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
43:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
43:6 122 112 99 255 101 93 82 255 85 78 69 255 101 93 82 255
|
||||
44 122 112 99 254 101 93 82 254 85 78 69 254 101 93 82 254
|
||||
44:0 122 112 99 254 101 93 82 254 85 78 69 254 101 93 82 254
|
||||
44:1 192 178 110 255 160 148 92 255 134 124 77 255 160 148 92 255
|
||||
44:2 109 80 60 255 91 67 50 255 76 56 41 255 91 67 50 255
|
||||
44:3 118 112 96 255 98 93 80 255 82 78 67 255 98 93 80 255
|
||||
44:4 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
44:5 200 200 200 255 160 160 160 255 100 100 100 255 80 80 80 255
|
||||
44:6 122 112 99 254 101 93 82 254 85 78 69 254 101 93 82 254
|
||||
45 230 103 73 255 192 86 61 255 160 71 50 255 192 86 61 255
|
||||
46 255 79 30 255 231 72 27 255 193 60 22 255 231 72 27 255
|
||||
47 125 91 38 192 100 72 30 192 62 45 19 192 50 36 15 192
|
||||
@@ -73,6 +82,7 @@
|
||||
51 255 170 30 200 255 170 30 200 212 141 25 200 255 170 30 200
|
||||
52 255 228 52 255 255 228 52 255 212 190 43 255 255 228 52 255
|
||||
53 145 109 80 255 121 91 67 255 101 76 56 255 121 91 67 255
|
||||
53:4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
54 165 132 100 255 138 110 84 255 115 92 70 255 138 110 84 255
|
||||
55 116 21 21 255 97 18 18 255 81 15 15 255 97 18 18 255
|
||||
56 115 230 255 255 105 210 232 255 88 175 194 255 105 210 232 255
|
||||
@@ -116,32 +126,56 @@
|
||||
94 159 127 80 255 102 0 0 0 255 0 0 255 204 0 0 0
|
||||
95 125 91 38 255 100 72 30 255 62 45 19 255 50 36 15 255
|
||||
96 111 91 54 255 88 72 43 255 55 45 27 255 44 36 21 255
|
||||
Biome Rainforest - Dark Green
|
||||
[RAINFOREST] 49 67 21 255 39 53 17 255 24 34 10 255 19 27 8 255
|
||||
Biome Swampland - Brown
|
||||
[SWAMPLAND] 75 44 24 255 60 35 19 255 37 22 12 255 30 18 10 255
|
||||
Biome Seasonal Forest - Light Green
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 131 33 255 26 82 21 255 20 65 17 255
|
||||
Biome Forest - Light Gray
|
||||
[FOREST] 138 145 145 255 110 115 115 255 69 72 72 255 55 57 57 255
|
||||
Biome Savanna - Dark Gray
|
||||
[SAVANNA] 58 58 58 255 47 47 47 255 29 29 29 255 23 23 23 255
|
||||
Biome Shrubland - Yellow
|
||||
[SHRUBLAND] 170 158 24 255 135 126 19 255 85 79 12 255 67 62 10 255
|
||||
Biome Taiga - Cyan
|
||||
[TAIGA] 34 102 131 255 27 81 104 255 17 51 65 255 13 40 52 255
|
||||
Biome Desert - Orange
|
||||
[DESERT] 204 111 48 255 162 89 38 255 102 56 24 255 81 44 19 255
|
||||
Biome Plains - Magenta
|
||||
[PLAINS] 166 66 175 255 133 53 140 255 83 33 87 255 66 26 69 255
|
||||
Biome Ice Desert - Dark Blue
|
||||
[ICE_DESERT] 26 33 103 255 20 26 80 255 13 17 50 255 9 14 40 255
|
||||
Biome Tundra - White
|
||||
[TUNDRA] 222 222 222 255 177 177 177 255 111 111 111 255 88 88 88 255
|
||||
Biome Hell - Pink
|
||||
[HELL] 190 115 135 255 151 92 108 255 95 57 67 255 75 46 53 255
|
||||
Biome Sky - Blue
|
||||
[SKY] 34 44 134 255 27 35 107 255 17 22 67 255 13 18 53 255
|
||||
97 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
98 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
99 204 153 120 255 145 109 85 255 114 86 67 255 73 64 58 255
|
||||
100 255 43 43 255 196 29 38 255 186 105 109 255 124 64 64 255
|
||||
101 191 191 191 96 152 152 152 96 95 95 95 96 76 76 76 96
|
||||
102 255 255 255 64 204 204 204 64 127 127 127 64 102 102 102 64
|
||||
103 193 193 65 255 174 174 47 255 97 97 5 255 76 76 20 255
|
||||
104 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
105 146 192 0 255 116 153 0 255 73 96 0 255 58 76 0 255
|
||||
106 60 192 41 100 48 153 32 100 30 96 20 100 24 76 16 100
|
||||
107 127 98 49 96 95 72 33 96 48 34 9 96 32 21 21 96
|
||||
108 170 86 62 255 136 68 49 255 85 43 31 255 68 34 24 255
|
||||
109 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
110 110 98 104 255 88 78 83 255 55 49 52 255 44 39 42 255
|
||||
111 117 176 73 255 93 140 58 255 58 88 36 255 46 70 29 255
|
||||
112 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
113 166 89 89 96 141 80 62 96 135 15 15 96 96 6 6 96
|
||||
114 166 89 89 255 141 80 62 255 135 15 15 255 96 6 6 255
|
||||
115 142 19 21 96 113 15 17 96 71 10 10 96 57 7 8 96
|
||||
116 88 23 22 255 29 10 16 255 17 7 10 255 15 5 8 255
|
||||
117 114 114 114 96 91 91 91 96 67 67 67 96 46 46 46 96
|
||||
118 74 74 74 255 59 59 59 255 37 37 37 255 30 30 30 255
|
||||
119 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
120 113 133 104 255 90 106 83 255 56 66 52 255 45 54 42 255
|
||||
121 224 226 169 255 179 180 135 255 112 113 85 255 90 90 66 255
|
||||
122 26 11 43 255 20 8 34 255 13 5 21 255 10 4 17 255
|
||||
Biome Mapping
|
||||
[RAINFOREST] 49 67 21 255 39 54 17 255 25 34 11 255 20 27 8 255
|
||||
[SWAMPLAND] 64 128 0 255 51 102 0 255 32 64 0 255 26 51 0 255
|
||||
[SEASONAL_FOREST] 51 165 42 255 41 132 34 255 26 83 21 255 20 66 17 255
|
||||
[FOREST] 0 128 64 255 0 102 51 255 0 64 32 255 0 51 26 255
|
||||
[SAVANNA] 58 58 58 255 46 46 46 255 29 29 29 255 23 23 23 255
|
||||
[SHRUBLAND] 170 158 24 255 136 126 19 255 85 79 12 255 68 63 10 255
|
||||
[TAIGA] 204 255 102 255 163 204 82 255 102 128 51 255 82 102 41 255
|
||||
[DESERT] 255 255 102 255 204 204 82 255 128 128 51 255 102 102 41 255
|
||||
[PLAINS] 255 204 102 255 204 163 82 255 128 102 51 255 102 82 41 255
|
||||
[ICE_DESERT] 26 33 103 255 21 26 82 255 13 17 52 255 10 13 41 255
|
||||
[TUNDRA] 222 222 222 255 178 178 178 255 111 111 111 255 89 89 89 255
|
||||
[HELL] 255 0 0 255 204 0 0 255 128 0 0 255 102 0 0 255
|
||||
[SKY] 102 204 255 255 82 163 204 255 51 102 128 255 41 82 102 255
|
||||
[OCEAN] 0 0 255 255 0 0 204 255 0 0 128 255 0 0 102 255
|
||||
[RIVER] 0 128 255 255 0 102 204 255 0 64 128 255 0 51 102 255
|
||||
[EXTREME_HILLS] 128 64 0 255 102 51 0 255 64 32 0 255 51 26 0 255
|
||||
[FROZEN_OCEAN] 102 255 204 255 82 204 163 255 51 128 102 255 41 102 82 255
|
||||
[FROZEN_RIVER] 102 102 255 255 82 82 204 255 51 51 128 255 41 41 102 255
|
||||
[ICE_PLAINS] 102 255 255 255 82 204 204 255 51 128 128 255 41 102 102 255
|
||||
[ICE_MOUNTAINS] 255 255 255 255 204 204 204 255 128 128 128 255 102 102 102 255
|
||||
[MUSHROOM_ISLAND] 255 111 207 255 204 89 166 255 128 56 104 255 102 44 83 255
|
||||
[MUSHROOM_SHORE] 255 0 128 255 204 0 102 255 128 0 64 255 102 0 51 255
|
||||
Rainfall/Temperature Mapping
|
||||
[RAINFALL-0.0] 120 120 120 255 96 96 96 255 60 60 60 255 48 48 48 255
|
||||
[RAINFALL-1.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
[TEMPERATURE-0.0] 38 92 255 255 30 73 204 255 19 46 127 255 15 36 102 255
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.dynmap</groupId>
|
||||
<artifactId>dynmap</artifactId>
|
||||
<version>0.22</version>
|
||||
<version>0.25</version>
|
||||
<name>dynmap</name>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<url>http://github.com/FrozenCow/dynmap/</url>
|
||||
<url>http://github.com/webbukkit/dynmap/</url>
|
||||
<issueManagement>
|
||||
<system>GitHub</system>
|
||||
<url>https://github.com/FrozenCow/dynmap/issues</url>
|
||||
<url>https://github.com/webbukkit/dynmap/issues</url>
|
||||
</issueManagement>
|
||||
<build>
|
||||
<resources>
|
||||
@@ -41,6 +41,27 @@
|
||||
<target>1.6</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>1.5</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactSet>
|
||||
<excludes>
|
||||
<exclude>org.bukkit:bukkit:jar:*</exclude>
|
||||
<exclude>com.nijikokun.bukkit:Permissions:jar:*</exclude>
|
||||
</excludes>
|
||||
</artifactSet>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
@@ -64,7 +85,7 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@@ -75,9 +96,16 @@
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.0.0-R1-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dynmap</groupId>
|
||||
<artifactId>dynmap-api</artifactId>
|
||||
<version>0.25</version>
|
||||
<type>jar</type>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
# BuildCraft Block mapping
|
||||
# define buildcraft-support: true in configuration.txt to enable
|
||||
enabled:buildcraft-support
|
||||
# Pipe - set render alg
|
||||
linkmap:id=145,linkalg=5,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
linkmap:id=146,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
linkmap:id=147,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
linkmap:id=148,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
linkmap:id=149,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
linkmap:id=156,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=159,linkid=166
|
||||
linkmap:id=159,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
linkmap:id=166,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166
|
||||
# Frame
|
||||
linkmap:id=160,linkalg=5,linkid=160
|
||||
# Pipe - (data is faked: 1=north,2=east,4=south,8=west)
|
||||
# Pipe - no neighbors
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=0,scale=4
|
||||
layer:1,2
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
# Pipe - just north neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=1,scale=4
|
||||
layer:1,2
|
||||
-**-
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
# Pipe - just east neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=2,scale=4
|
||||
rotate:id=145,data=1,rot=90
|
||||
# Pipe - just south neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=4,scale=4
|
||||
rotate:id=145,data=1,rot=180
|
||||
# Pipe - just south neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=8,scale=4
|
||||
rotate:id=145,data=1,rot=270
|
||||
# Pipe - north and east neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=3,scale=4
|
||||
layer:1,2
|
||||
-**-
|
||||
-***
|
||||
-***
|
||||
----
|
||||
# Pipe - east and south neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=6,scale=4
|
||||
rotate:id=145,data=3,rot=90
|
||||
# Pipe - south and west neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=12,scale=4
|
||||
rotate:id=145,data=3,rot=180
|
||||
# Pipe - west and north neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=9,scale=4
|
||||
rotate:id=145,data=3,rot=270
|
||||
# Pipe - north and south neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=5,scale=4
|
||||
layer:1,2
|
||||
-**-
|
||||
-**-
|
||||
-**-
|
||||
-**-
|
||||
# Pipe - east and west neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=10,scale=4
|
||||
rotate:id=145,data=5,rot=90
|
||||
# Pipe - north, east and south neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=7,scale=4
|
||||
layer:1,2
|
||||
-**-
|
||||
-***
|
||||
-***
|
||||
-**-
|
||||
# Pipe - east, south and west neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=14,scale=4
|
||||
rotate:id=145,data=7,rot=90
|
||||
# Pipe - south, west and north neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=13,scale=4
|
||||
rotate:id=145,data=7,rot=180
|
||||
# Pipe - west, north and east neighbor
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=11,scale=4
|
||||
rotate:id=145,data=7,rot=270
|
||||
# Pipe - north, south, east, west neightbors
|
||||
# Frame
|
||||
block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=15,scale=4
|
||||
layer:1,2
|
||||
-**-
|
||||
****
|
||||
****
|
||||
-**-
|
||||
# Drill - set render alg
|
||||
linkmap:id=151,linkalg=5
|
||||
# Drill - (data is faked: 1=north,2=east,4=south,8=west)
|
||||
# Drill - no neighbors
|
||||
block:id=151,data=0,scale=4
|
||||
layer:0,1,2,3
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
# Drill - just north neighbor
|
||||
block:id=151,data=1,scale=4
|
||||
layer:0,3
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
layer:1,2
|
||||
-**-
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
# Drill - just east neighbor
|
||||
block:id=151,data=2,scale=4
|
||||
rotate:id=151,data=1,rot=90
|
||||
# Drill - just south neighbor
|
||||
block:id=151,data=4,scale=4
|
||||
rotate:id=151,data=1,rot=180
|
||||
# Drill - just south neighbor
|
||||
block:id=151,data=8,scale=4
|
||||
rotate:id=151,data=1,rot=270
|
||||
# Drill - north and east neighbor
|
||||
block:id=151,data=3,scale=4
|
||||
layer:0,3
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
layer:1,2
|
||||
-**-
|
||||
-***
|
||||
-***
|
||||
----
|
||||
# Drill - east and south neighbor
|
||||
block:id=151,data=6,scale=4
|
||||
rotate:id=151,data=3,rot=90
|
||||
# Drill - south and west neighbor
|
||||
block:id=151,data=12,scale=4
|
||||
rotate:id=151,data=3,rot=180
|
||||
# Drill - west and north neighbor
|
||||
block:id=151,data=9,scale=4
|
||||
rotate:id=151,data=3,rot=270
|
||||
# Drill - north and south neighbor
|
||||
block:id=151,data=5,scale=4
|
||||
layer:0,3
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
layer:1,2
|
||||
-**-
|
||||
-**-
|
||||
-**-
|
||||
-**-
|
||||
# Drill - east and west neighbor
|
||||
block:id=151,data=10,scale=4
|
||||
rotate:id=151,data=5,rot=90
|
||||
# Drill - north, east and south neighbor
|
||||
block:id=151,data=7,scale=4
|
||||
layer:0,3
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
layer:1,2
|
||||
-**-
|
||||
-***
|
||||
-***
|
||||
-**-
|
||||
# Drill - east, south and west neighbor
|
||||
block:id=151,data=14,scale=4
|
||||
rotate:id=151,data=7,rot=90
|
||||
# Drill - south, west and north neighbor
|
||||
block:id=151,data=13,scale=4
|
||||
rotate:id=151,data=7,rot=180
|
||||
# Drill - west, north and east neighbor
|
||||
block:id=151,data=11,scale=4
|
||||
rotate:id=151,data=7,rot=270
|
||||
# Drill - north, south, east, west neightbors
|
||||
block:id=151,data=15,scale=4
|
||||
layer:0,3
|
||||
----
|
||||
-**-
|
||||
-**-
|
||||
----
|
||||
layer:1,2
|
||||
-**-
|
||||
****
|
||||
****
|
||||
-**-
|
||||
# Marker
|
||||
block:id=154,data=*,scale=8
|
||||
layer:0,1,2,3,4,5,6,7
|
||||
--------
|
||||
--------
|
||||
---**---
|
||||
--****--
|
||||
--****--
|
||||
---**---
|
||||
--------
|
||||
--------
|
||||
# Engine
|
||||
block:id=161,data=*,scale=8
|
||||
layer:2,3
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
layer:4,5,6,7
|
||||
--------
|
||||
--------
|
||||
--****--
|
||||
--****--
|
||||
--****--
|
||||
--****--
|
||||
--------
|
||||
--------
|
||||
# Oil, flowing
|
||||
block:id=162,data=*,scale=4
|
||||
layer:0
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
# Oil
|
||||
block:id=163,data=*,scale=4
|
||||
layer:0,1
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
# Tank
|
||||
block:id=165,data=*,scale=8
|
||||
layer:0,1,2,3,4,5,6,7
|
||||
--------
|
||||
-******-
|
||||
-******-
|
||||
-******-
|
||||
-******-
|
||||
-******-
|
||||
-******-
|
||||
--------
|
||||
@@ -0,0 +1,69 @@
|
||||
# BuildCraft Block mapping
|
||||
# define buildcraft-support: true in configuration.txt to enable
|
||||
enabled:buildcraft-support
|
||||
# Files
|
||||
texturefile:id=blk,filename=buildcraft/block_textures.png,xcount=16,ycount=16
|
||||
texturefile:id=wood,filename=buildcraft/base_wood.png,xcount=4,ycount=2
|
||||
texturefile:id=iron,filename=buildcraft/base_iron.png,xcount=4,ycount=2
|
||||
texturefile:id=stone,filename=buildcraft/base_stone.png,xcount=4,ycount=2
|
||||
# WOODEN_PIPE_ID = 145
|
||||
block:id=145,data=*,allfaces=16,txtid=blk,transparency=TRANSPARENT
|
||||
# STONE_PIPE_ID = 146
|
||||
block:id=146,data=*,allfaces=29,txtid=blk,transparency=TRANSPARENT
|
||||
# IRON_PIPE_ID = 147
|
||||
block:id=147,data=*,allfaces=19,txtid=blk,transparency=TRANSPARENT
|
||||
# GOLDEN_PIPE_ID = 148
|
||||
block:id=148,data=*,allfaces=20,txtid=blk,transparency=TRANSPARENT
|
||||
# DIAMOND_PIPE_ID = 149
|
||||
block:id=149,data=*,allfaces=21,txtid=blk,transparency=TRANSPARENT
|
||||
# MINING_WELL_ID = 150
|
||||
block:id=150,data=2,east=35,top=4036,north=37,south=37,west=38,bottom=38,txtid=blk
|
||||
block:id=150,data=3,west=35,top=4036,north=37,south=37,east=38,bottom=38,txtid=blk
|
||||
block:id=150,data=4,north=35,top=4036,east=37,west=37,south=38,bottom=38,txtid=blk
|
||||
block:id=150,data=5,south=35,top=4036,east=37,west=37,north=38,bottom=38,txtid=blk
|
||||
# DRILL_ID = 151
|
||||
block:id=151,data=*,allfaces=32,txtid=blk,transparency=TRANSPARENT
|
||||
# AUTO_WORKBENCH_ID = 152
|
||||
block:id=152,data=*,allsides=44,topbottom=4043
|
||||
# QUARRY_ID = 153
|
||||
block:id=153,data=2,east=39,top=4040,north=38,south=38,west=38,bottom=38,txtid=blk
|
||||
block:id=153,data=3,west=39,top=4040,north=38,south=38,east=38,bottom=38,txtid=blk
|
||||
block:id=153,data=4,north=39,top=4040,east=38,west=38,south=38,bottom=38,txtid=blk
|
||||
block:id=153,data=5,south=39,top=4040,east=38,west=38,north=38,bottom=38,txtid=blk
|
||||
# MARKER_ID = 154
|
||||
block:id=154,data=*,allsides=57,txtid=blk,transparency=TRANSPARENT
|
||||
# FILLER_ID = 155
|
||||
block:id=155,data=*,allsides=66,topbottom=4065,txtid=blk
|
||||
# OBSIDIAN_PIPE_ID = 156
|
||||
block:id=156,data=*,allfaces=28,txtid=blk,transparency=TRANSPARENT
|
||||
# BUILDER_ID = 157
|
||||
block:id=157,data=2,east=55,top=4054,north=3,south=3,west=3,bottom=3,txtid=blk
|
||||
block:id=157,data=3,west=55,top=4054,north=3,south=3,east=3,bottom=3,txtid=blk
|
||||
block:id=157,data=4,north=55,top=4054,east=3,west=3,south=3,bottom=3,txtid=blk
|
||||
block:id=157,data=5,south=55,top=4054,east=3,west=3,north=3,bottom=3,txtid=blk
|
||||
# TEMPLATE_ID = 158
|
||||
block:id=158,data=2,east=52,top=4050,north=48,south=48,west=48,bottom=48,txtid=blk
|
||||
block:id=158,data=3,west=52,top=4050,north=48,south=48,east=48,bottom=48,txtid=blk
|
||||
block:id=158,data=4,north=52,top=4050,east=48,west=48,south=48,bottom=48,txtid=blk
|
||||
block:id=158,data=5,south=52,top=4050,east=48,west=48,north=48,bottom=48,txtid=blk
|
||||
# COBBLESTONE_PIPE_ID = 159
|
||||
block:id=159,data=*,allfaces=17,txtid=blk,transparency=TRANSPARENT
|
||||
# FRAME_ID = 160
|
||||
block:id=160,data=*,allfaces=34,txtid=blk,transparency=TRANSPARENT
|
||||
# ENGINE_ID = 161
|
||||
block:id=161,data=0,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=wood
|
||||
block:id=161,data=1,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=stone
|
||||
block:id=161,data=2,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=iron
|
||||
# OIL_MOVING_ID = 162
|
||||
block:id=162,data=*,allfaces=223,txtid=blk
|
||||
# OIL_STILL_ID = 163
|
||||
block:id=163,data=*,allfaces=223,txtid=blk
|
||||
# PUMP_ID = 164
|
||||
block:id=164,data=*,allsides=99,top=4064,bottom=100,txtid=blk
|
||||
# TANK_ID = 165
|
||||
block:id=165,data=*,allsides=96,topbottom=98,txtid=blk,transparency=TRANSPARENT
|
||||
# GENERIC_PIPE_ID = 166 : entity data based, so we can't handle it yet: just map to one type (iron)
|
||||
block:id=166,data=*,allfaces=18,txtid=blk,transparency=TRANSPARENT
|
||||
# REFINERY_ID = 167 - funky texture mapping - just do tank for now
|
||||
block:id=167,data=*,allsides=96,topbottom=98,txtid=blk,transparency=TRANSPARENT
|
||||
# DOCKING_STATION_ID = 168
|
||||
@@ -0,0 +1,201 @@
|
||||
# Industrial Craft 2 Texture mapping
|
||||
# define ic2-support: true in configuration.txt to enable
|
||||
enabled:ic2-support
|
||||
# Wire - set render alg
|
||||
linkmap:id=228,linkalg=5,linkid=223,linkid=225,linkid=226,linkid=227,linkid=228,linkid=233,linkid=237,linkid=246,linkid=250
|
||||
# Wire - (data is faked: 1=north,2=east,4=south,8=west)
|
||||
# Wire - no neighbors
|
||||
block:id=228,data=0,scale=16
|
||||
layer:5,6,7,8,9,10
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
# Wire - just north neighbor
|
||||
block:id=228,data=1,scale=16
|
||||
layer:5,6,7,8,9,10
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
# Wire - just east neighbor
|
||||
block:id=228,data=2,scale=16
|
||||
rotate:id=228,data=1,rot=90
|
||||
# Wire - just south neighbor
|
||||
block:id=228,id=113,data=4,scale=16
|
||||
rotate:id=228,data=1,rot=180
|
||||
# Wire - just south neighbor
|
||||
block:id=228,data=8,scale=16
|
||||
rotate:id=228,data=1,rot=270
|
||||
# Wire - north and east neighbor
|
||||
block:id=228,data=3,scale=16
|
||||
layer:5,6,7,8,9,10
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
----------------
|
||||
# Wire - east and south neighbor
|
||||
block:id=228,data=6,scale=16
|
||||
rotate:id=228,data=3,rot=90
|
||||
# Wire - south and west neighbor
|
||||
block:id=228,data=12,scale=16
|
||||
rotate:id=228,data=3,rot=180
|
||||
# Wire - west and north neighbor
|
||||
block:id=228,data=9,scale=16
|
||||
rotate:id=228,data=3,rot=270
|
||||
# Wire - north and south neighbor
|
||||
block:id=228,data=5,scale=16
|
||||
layer:5,6,7,8,9,10
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
# Wire - east and west neighbor
|
||||
block:id=228,data=10,scale=16
|
||||
rotate:id=228,data=5,rot=90
|
||||
# Wire - north, east and south neighbor
|
||||
block:id=228,data=7,scale=16
|
||||
layer:5,6,7,8,9,10
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
-----***********
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
# Wire - east, south and west neighbor
|
||||
block:id=228,data=14,scale=16
|
||||
rotate:id=228,data=7,rot=90
|
||||
# Wire - south, west and north neighbor
|
||||
block:id=228,data=13,scale=16
|
||||
rotate:id=228,data=7,rot=180
|
||||
# Wire - west, north and east neighbor
|
||||
block:id=228,data=11,scale=16
|
||||
rotate:id=228,data=7,rot=270
|
||||
# Wire - north, south, east, west neightbors
|
||||
block:id=228,data=15,scale=16
|
||||
layer:5,6,7,8,9,10
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
****************
|
||||
****************
|
||||
****************
|
||||
****************
|
||||
****************
|
||||
****************
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
-----******-----
|
||||
# Iron Fence - set render algorithm
|
||||
linkmap:id=232,linkalg=1
|
||||
# Iron Fence - (data is faked: 1=north,2=east,4=south,8=west)
|
||||
# Iron Fence - no neighbors
|
||||
block:id=232,data=0,scale=16
|
||||
rotate:id=85,data=0,rot=0
|
||||
# Iron Fence - just north neighbor
|
||||
block:id=232,data=1,scale=16
|
||||
rotate:id=85,data=1,rot=0
|
||||
# Iron Fence - just east neighbor
|
||||
block:id=232,data=2,scale=16
|
||||
rotate:id=232,data=1,rot=90
|
||||
# Iron Fence - just south neighbor
|
||||
block:id=232,data=4,scale=16
|
||||
rotate:id=232,data=1,rot=180
|
||||
# Iron Fence - just south neighbor
|
||||
block:id=232,data=8,scale=16
|
||||
rotate:id=232,data=1,rot=270
|
||||
# Iron Fence - north and east neighbor
|
||||
block:id=232,data=3,scale=16
|
||||
rotate:id=85,data=3,rot=0
|
||||
# Iron Fence - east and south neighbor
|
||||
block:id=232,data=6,scale=16
|
||||
rotate:id=232,data=3,rot=90
|
||||
# Iron Fence - south and west neighbor
|
||||
block:id=232,data=12,scale=16
|
||||
rotate:id=85,data=3,rot=180
|
||||
# Iron Fence - west and north neighbor
|
||||
block:id=232,data=9,scale=16
|
||||
rotate:id=85,data=3,rot=270
|
||||
# Iron Fence - north and south neighbor
|
||||
block:id=232,data=5,scale=16
|
||||
rotate:id=85,data=5,rot=0
|
||||
# Iron Fence - east and west neighbor
|
||||
block:id=232,id=113,data=10,scale=16
|
||||
rotate:id=232,data=5,rot=90
|
||||
# Iron Fence - north, east and south neighbor
|
||||
block:id=232,data=7,scale=16
|
||||
rotate:id=85,data=7,rot=0
|
||||
# Iron Fence - east, south and west neighbor
|
||||
block:id=232,data=14,scale=16
|
||||
rotate:id=232,data=7,rot=90
|
||||
# Iron Fence - south, west and north neighbor
|
||||
block:id=232,data=13,scale=16
|
||||
rotate:id=232,data=7,rot=180
|
||||
# Iron Fence - west, north and east neighbor
|
||||
block:id=232,data=11,scale=16
|
||||
rotate:id=232,data=7,rot=270
|
||||
# Iron Fence - north, south, east, west neightbors
|
||||
block:id=232,data=15,scale=16
|
||||
rotate:id=232,data=15,rot=0
|
||||
@@ -0,0 +1,197 @@
|
||||
# Industrial Craft 2 Block mapping
|
||||
# define ic2-support: true in configuration.txt to enable
|
||||
enabled:ic2-support
|
||||
# Files
|
||||
texturefile:id=blk0,filename=ic2/sprites/block_0.png,xcount=16,ycount=16
|
||||
texturefile:id=cable,filename=ic2/sprites/block_cable.png,xcount=16,ycount=16
|
||||
texturefile:id=elec,filename=ic2/sprites/block_electric.png,xcount=16,ycount=16
|
||||
texturefile:id=gen,filename=ic2/sprites/block_generator.png,xcount=16,ycount=16
|
||||
texturefile:id=mach,filename=ic2/sprites/block_machine.png,xcount=16,ycount=16
|
||||
texturefile:id=mach2,filename=ic2/sprites/block_machine2.png,xcount=16,ycount=16
|
||||
texturefile:id=pers,filename=ic2/sprites/block_personal.png,xcount=16,ycount=16
|
||||
# Blocks
|
||||
# blockScaffold=220
|
||||
# data=*
|
||||
block:id=220,data=*,allsides=116,topbottom=117,txtid=blk0
|
||||
# data=2
|
||||
block:id=220,data=2,allfaces=118,txtid=blk0
|
||||
# blockWall=221
|
||||
# data=0
|
||||
block:id=221,data=0,allfaces=96,txtid=blk0
|
||||
# data=1
|
||||
block:id=221,data=1,allfaces=97,txtid=blk0
|
||||
# data=2
|
||||
block:id=221,data=2,allfaces=98,txtid=blk0
|
||||
# data=3
|
||||
block:id=221,data=3,allfaces=99,txtid=blk0
|
||||
# data=4
|
||||
block:id=221,data=4,allfaces=100,txtid=blk0
|
||||
# data=5
|
||||
block:id=221,data=5,allfaces=101,txtid=blk0
|
||||
# data=6
|
||||
block:id=221,data=6,allfaces=102,txtid=blk0
|
||||
# data=7
|
||||
block:id=221,data=7,allfaces=103,txtid=blk0
|
||||
# data=8
|
||||
block:id=221,data=8,allfaces=104,txtid=blk0
|
||||
# data=9
|
||||
block:id=221,data=9,allfaces=105,txtid=blk0
|
||||
# data=10
|
||||
block:id=221,data=10,allfaces=106,txtid=blk0
|
||||
# data=11
|
||||
block:id=221,data=11,allfaces=107,txtid=blk0
|
||||
# data=12
|
||||
block:id=221,data=12,allfaces=108,txtid=blk0
|
||||
# data=13
|
||||
block:id=221,data=13,allfaces=109,txtid=blk0
|
||||
# data=14
|
||||
block:id=221,data=14,allfaces=110,txtid=blk0
|
||||
# data=15
|
||||
block:id=221,data=15,allfaces=111,txtid=blk0
|
||||
# blockFoam=222
|
||||
block:id=222,data=*,allfaces=37
|
||||
# blockMachine2=223
|
||||
# data=0
|
||||
block:id=223,data=0,top=0,bottom=16,north=32,south=48,east=64,west=80,txtid=mach2
|
||||
# data=1
|
||||
block:id=223,data=1,top=1,bottom=17,north=33,south=49,east=65,west=81,txtid=mach2
|
||||
# blockMetal=224
|
||||
# data=0 (copper)
|
||||
block:id=224,data=0,allfaces=93,txtid=blk0
|
||||
# data=1 (tin)
|
||||
block:id=224,data=1,allfaces=94,txtid=blk0
|
||||
# data=2 (bronze)
|
||||
block:id=224,data=2,allfaces=78,txtid=blk0
|
||||
# data=3 (uranium)
|
||||
block:id=224,data=3,topbottom=79,allsides=95,txtid=blk0
|
||||
# blockPersonal=225
|
||||
# data=0
|
||||
block:id=225,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=pers
|
||||
# data=1
|
||||
block:id=225,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=pers
|
||||
# blockLuminator=226
|
||||
block:id=226,data=*,allfaces=31,txtid=blk0
|
||||
# blockElectric=227
|
||||
# data=0
|
||||
block:id=227,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=elec
|
||||
# data=1
|
||||
block:id=227,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=elec
|
||||
# data=2
|
||||
block:id=227,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=elec
|
||||
# data=3
|
||||
block:id=227,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=elec
|
||||
# data=4
|
||||
block:id=227,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=elec
|
||||
# data=5
|
||||
block:id=227,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=elec
|
||||
# blockCable=228
|
||||
# data=0
|
||||
block:id=228,data=0,allfaces=0,txtid=cable
|
||||
# data=1
|
||||
block:id=228,data=1,allfaces=16,txtid=cable
|
||||
# data=2
|
||||
block:id=228,data=2,allfaces=32,txtid=cable
|
||||
# data=3
|
||||
block:id=228,data=3,allfaces=48,txtid=cable
|
||||
# data=4
|
||||
block:id=228,data=4,allfaces=64,txtid=cable
|
||||
# data=5
|
||||
block:id=228,data=5,allfaces=80,txtid=cable
|
||||
# data=6
|
||||
block:id=228,data=6,allfaces=96,txtid=cable
|
||||
# data=7
|
||||
block:id=228,data=7,allfaces=112,txtid=cable
|
||||
# data=8
|
||||
block:id=228,data=8,allfaces=128,txtid=cable
|
||||
# data=9
|
||||
block:id=228,data=9,allfaces=144,txtid=cable
|
||||
# data=10
|
||||
block:id=228,data=10,allfaces=160,txtid=cable
|
||||
# blockDoorAlloy=229
|
||||
# data=0-7 (bottom)
|
||||
block:id=229,data=0,data=1,data=2,data=3,data=4,data=5,data=6,data=7,allsides=15,topbottom=12,transparency=TRANSPARENT,txtid=blk0
|
||||
# data=8-15 (top)
|
||||
block:id=229,data=8,data=9,data=10,data=11,data=12,data=13,data=14,data=15,allsides=14,topbottom=12,transparency=TRANSPARENT,txtid=blk0
|
||||
# blockAlloyGlass=230
|
||||
block:id=230,data=*,allfaces=13,txtid=blk0,transparency=TRANSPARENT
|
||||
# blockAlloy=231
|
||||
block:id=231,data=*,allfaces=12,txtid=blk0
|
||||
# blockFenceIron=232
|
||||
block:id=232,data=*,allfaces=1,txtid=blk0,transparency=TRANSPARENT
|
||||
# blockReactorChamber=233
|
||||
block:id=233,data=*,bottom=16,top=17,allsides=67,txtid=blk0
|
||||
# blockRubber=234
|
||||
block:id=234,data=*,allfaces=40,txtid=blk0
|
||||
# blockDynamiteRemote=235
|
||||
block:id=235,data=*,allsides=56,txtid=blk0
|
||||
# blockDynamite=236
|
||||
block:id=236,data=*,allsides=57,txtid=blk0
|
||||
# blockNuke=237
|
||||
block:id=237,data=*,bottom=61,top=62,allsides=63,txtid=blk0
|
||||
# ?=238
|
||||
# blockITNT=239
|
||||
block:id=239,data=*,bottom=58,top=59,allsides=60,txtid=blk0
|
||||
# blockHarz=240
|
||||
block:id=240,data=*,allfaces=43,txtid=blk0
|
||||
# blockRubSapling=241
|
||||
block:id=241,data=*,allsides=2038,transparency=TRANSPARENT,txtid=blk0
|
||||
# blockRubLeaves=242
|
||||
block:id=242,data=*,allfaces=2040,transparency=TRANSPARENT,txtid=blk0
|
||||
# blockRubWood=243
|
||||
block:id=243,data=*,topbottom=47,allsides=44,txtid=blk0
|
||||
# blockMiningTip=244
|
||||
block:id=244,data=*,allfaces=36,txtid=blk0
|
||||
# blockMiningPipe=245
|
||||
block:id=245,data=*,allfaces=35,txtid=blk0
|
||||
# blockGenerator=246
|
||||
# data=0
|
||||
block:id=246,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=gen
|
||||
# data=1
|
||||
block:id=246,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=gen
|
||||
# data=2
|
||||
block:id=246,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=gen
|
||||
# data=3
|
||||
block:id=246,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=gen
|
||||
# data=4
|
||||
block:id=246,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=gen
|
||||
# data=5
|
||||
block:id=246,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=gen
|
||||
# blockOreUran=247
|
||||
block:id=247,data=*,allfaces=34,txtid=blk0
|
||||
# blockOreTin=248
|
||||
block:id=248,data=*,allfaces=33,txtid=blk0
|
||||
# blockOreCopper=249
|
||||
block:id=249,data=*,allfaces=32,txtid=blk0
|
||||
# blockMachine=250
|
||||
# data=0
|
||||
block:id=250,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=mach
|
||||
# data=1
|
||||
block:id=250,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=mach
|
||||
# data=2
|
||||
block:id=250,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=mach
|
||||
# data=3
|
||||
block:id=250,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=mach
|
||||
# data=4
|
||||
block:id=250,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=mach
|
||||
# data=5
|
||||
block:id=250,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=mach
|
||||
# data=6
|
||||
block:id=250,data=6,bottom=6,top=22,north=38,south=54,east=70,west=86,txtid=mach
|
||||
# data=7
|
||||
block:id=250,data=7,bottom=7,top=23,north=39,south=55,east=71,west=87,txtid=mach
|
||||
# data=8
|
||||
block:id=250,data=8,bottom=8,top=24,north=40,south=56,east=72,west=88,txtid=mach
|
||||
# data=9
|
||||
block:id=250,data=9,bottom=9,top=25,north=41,south=57,east=73,west=89,txtid=mach
|
||||
# data=10
|
||||
block:id=250,data=10,bottom=10,top=26,north=42,south=58,east=74,west=90,txtid=mach
|
||||
# data=11
|
||||
block:id=250,data=11,bottom=11,top=27,north=43,south=59,east=75,west=91,txtid=mach
|
||||
# data=12
|
||||
block:id=250,data=12,bottom=12,top=28,north=44,south=60,east=76,west=92,txtid=mach
|
||||
# data=13
|
||||
block:id=250,data=13,bottom=13,top=29,north=45,south=61,east=77,west=93,txtid=mach
|
||||
# data=14
|
||||
block:id=250,data=14,bottom=14,top=30,north=46,south=62,east=78,west=94,txtid=mach
|
||||
# data=15
|
||||
block:id=250,data=15,bottom=15,top=31,north=47,south=63,east=79,west=95,txtid=mach
|
||||
@@ -1,50 +1,77 @@
|
||||
package org.dynmap;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
public class AsynchronousQueue<T> {
|
||||
private Object lock = new Object();
|
||||
private Thread thread;
|
||||
private LinkedList<T> queue = new LinkedList<T>();
|
||||
private LinkedBlockingQueue<T> queue = new LinkedBlockingQueue<T>();
|
||||
private Set<T> set = new HashSet<T>();
|
||||
private Handler<T> handler;
|
||||
private int dequeueTime;
|
||||
private int accelDequeueTime;
|
||||
private int accelDequeueThresh;
|
||||
private int pendingcnt;
|
||||
private int pendinglimit;
|
||||
|
||||
public AsynchronousQueue(Handler<T> handler, int dequeueTime, int accelDequeueThresh, int accelDequeueTime) {
|
||||
public AsynchronousQueue(Handler<T> handler, int dequeueTime, int accelDequeueThresh, int accelDequeueTime, int pendinglimit) {
|
||||
this.handler = handler;
|
||||
this.dequeueTime = dequeueTime;
|
||||
this.accelDequeueTime = accelDequeueTime;
|
||||
this.accelDequeueThresh = accelDequeueThresh;
|
||||
this.pendinglimit = pendinglimit;
|
||||
}
|
||||
|
||||
public boolean push(T t) {
|
||||
synchronized (lock) {
|
||||
if (set.add(t)) {
|
||||
queue.addLast(t);
|
||||
return true;
|
||||
if (!set.add(t)) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
queue.offer(t);
|
||||
return true;
|
||||
}
|
||||
|
||||
private T pop() {
|
||||
synchronized (lock) {
|
||||
T t = queue.pollFirst();
|
||||
if(t != null)
|
||||
try {
|
||||
T t = queue.take();
|
||||
synchronized (lock) {
|
||||
set.remove(t);
|
||||
}
|
||||
return t;
|
||||
} catch (InterruptedException ix) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean remove(T t) {
|
||||
synchronized (lock) {
|
||||
if (set.remove(t)) {
|
||||
queue.remove(t);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return set.size();
|
||||
}
|
||||
|
||||
public List<T> popAll() {
|
||||
List<T> s;
|
||||
synchronized(lock) {
|
||||
s = new ArrayList<T>(queue);
|
||||
queue.clear();
|
||||
set.clear();
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
synchronized (lock) {
|
||||
thread = new Thread(new Runnable() {
|
||||
@@ -83,8 +110,22 @@ public class AsynchronousQueue<T> {
|
||||
private void running() {
|
||||
try {
|
||||
while (Thread.currentThread() == thread) {
|
||||
synchronized(lock) {
|
||||
while(pendingcnt >= pendinglimit) {
|
||||
try {
|
||||
lock.wait(accelDequeueTime);
|
||||
} catch (InterruptedException ix) {
|
||||
if(Thread.currentThread() != thread)
|
||||
return;
|
||||
throw ix;
|
||||
}
|
||||
}
|
||||
}
|
||||
T t = pop();
|
||||
if (t != null) {
|
||||
synchronized(lock) {
|
||||
pendingcnt++;
|
||||
}
|
||||
handler.handle(t);
|
||||
}
|
||||
if(set.size() >= accelDequeueThresh)
|
||||
@@ -106,4 +147,11 @@ public class AsynchronousQueue<T> {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void done(T t) {
|
||||
synchronized (lock) {
|
||||
if(pendingcnt > 0) pendingcnt--;
|
||||
lock.notifyAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,17 +9,23 @@ import java.util.Map;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
public class ClientComponent extends Component {
|
||||
|
||||
private boolean disabled;
|
||||
|
||||
public ClientComponent(final DynmapPlugin plugin, final ConfigurationNode configuration) {
|
||||
super(plugin, configuration);
|
||||
plugin.events.addListener("buildclientconfiguration", new Event.Listener<JSONObject>() {
|
||||
@Override
|
||||
public void triggered(JSONObject root) {
|
||||
buildClientConfiguration(root);
|
||||
if(!disabled)
|
||||
buildClientConfiguration(root);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected void disableComponent() {
|
||||
disabled = true;
|
||||
}
|
||||
|
||||
protected void buildClientConfiguration(JSONObject root) {
|
||||
JSONObject o = createClientConfiguration();
|
||||
a(root, "components", o);
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.dynmap;
|
||||
import static org.dynmap.JSONUtils.a;
|
||||
import static org.dynmap.JSONUtils.s;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.dynmap.Event.Listener;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -22,6 +23,11 @@ public class ClientConfigurationComponent extends Component {
|
||||
s(t, "defaultzoom", c.getInteger("defaultzoom", 0));
|
||||
s(t, "sidebaropened", c.getString("sidebaropened", "false"));
|
||||
s(t, "dynmapversion", plugin.getDescription().getVersion());
|
||||
s(t, "cyrillic", c.getBoolean("cyrillic-support", false));
|
||||
String sn = plugin.getServer().getServerName();
|
||||
if(sn.equals("Unknown Server"))
|
||||
sn = "Minecraft Dynamic Map";
|
||||
s(t, "title", c.getString("webpage-title", sn));
|
||||
|
||||
DynmapWorld defaultWorld = null;
|
||||
String defmap = null;
|
||||
@@ -31,9 +37,10 @@ public class ClientConfigurationComponent extends Component {
|
||||
JSONObject wo = new JSONObject();
|
||||
s(wo, "name", wn.getString("name"));
|
||||
s(wo, "title", wn.getString("title"));
|
||||
s(wo, "center/x", wn.getFloat("center/x", 0.0f));
|
||||
s(wo, "center/y", wn.getFloat("center/y", 64.0f));
|
||||
s(wo, "center/z", wn.getFloat("center/z", 0.0f));
|
||||
Location spawn = world.world.getSpawnLocation();
|
||||
s(wo, "center/x", wn.getDouble("center/x", spawn.getX()));
|
||||
s(wo, "center/y", wn.getDouble("center/y", spawn.getY()));
|
||||
s(wo, "center/z", wn.getDouble("center/z", spawn.getZ()));
|
||||
s(wo, "bigworld", world.bigworld);
|
||||
s(wo, "extrazoomout", world.getExtraZoomOutLevels());
|
||||
a(t, "worlds", wo);
|
||||
|
||||
@@ -3,14 +3,21 @@ package org.dynmap;
|
||||
import static org.dynmap.JSONUtils.a;
|
||||
import static org.dynmap.JSONUtils.s;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.dynmap.utils.BlockLightLevel;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ClientUpdateComponent extends Component {
|
||||
private BlockLightLevel bll = new BlockLightLevel();
|
||||
|
||||
public ClientUpdateComponent(final DynmapPlugin plugin, ConfigurationNode configuration) {
|
||||
super(plugin, configuration);
|
||||
plugin.events.addListener("buildclientupdate", new Event.Listener<ClientUpdateEvent>() {
|
||||
@@ -26,6 +33,8 @@ public class ClientUpdateComponent extends Component {
|
||||
JSONObject u = e.update;
|
||||
long since = e.timestamp;
|
||||
String worldName = world.getName();
|
||||
int hideifshadow = configuration.getInteger("hideifshadow", 15);
|
||||
int hideifunder = configuration.getInteger("hideifundercover", 15);
|
||||
|
||||
s(u, "servertime", world.getTime() % 24000);
|
||||
s(u, "hasStorm", world.hasStorm());
|
||||
@@ -37,14 +46,31 @@ public class ClientUpdateComponent extends Component {
|
||||
Player p = players[i];
|
||||
Location pl = p.getLocation();
|
||||
JSONObject jp = new JSONObject();
|
||||
boolean hide = false;
|
||||
|
||||
s(jp, "type", "player");
|
||||
s(jp, "name", ChatColor.stripColor(p.getDisplayName()));
|
||||
s(jp, "account", p.getName());
|
||||
if(hideifshadow < 15) {
|
||||
if(pl.getBlock().getLightLevel() <= hideifshadow)
|
||||
hide = true;
|
||||
}
|
||||
if(hideifunder < 15) {
|
||||
if(bll.isReady()) { /* If we can get real sky level */
|
||||
if(bll.getSkyLightLevel(pl.getBlock()) <= hideifunder)
|
||||
hide = true;
|
||||
}
|
||||
else {
|
||||
if(pl.getWorld().getHighestBlockYAt(pl) > pl.getBlockY())
|
||||
hide = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* Don't leak player location for world not visible on maps, or if sendposition disbaled */
|
||||
DynmapWorld pworld = MapManager.mapman.worldsLookup.get(p.getWorld().getName());
|
||||
/* Fix typo on 'sendpositon' to 'sendposition', keep bad one in case someone used it */
|
||||
if(configuration.getBoolean("sendposition", true) && configuration.getBoolean("sendpositon", true) &&
|
||||
(pworld != null) && pworld.sendposition) {
|
||||
(pworld != null) && pworld.sendposition && (!hide)) {
|
||||
s(jp, "world", p.getWorld().getName());
|
||||
s(jp, "x", pl.getX());
|
||||
s(jp, "y", pl.getY());
|
||||
@@ -57,7 +83,7 @@ public class ClientUpdateComponent extends Component {
|
||||
s(jp, "z", 0.0);
|
||||
}
|
||||
/* Only send health if enabled AND we're on visible world */
|
||||
if (configuration.getBoolean("sendhealth", false) && (pworld != null) && pworld.sendhealth) {
|
||||
if (configuration.getBoolean("sendhealth", false) && (pworld != null) && pworld.sendhealth && (!hide)) {
|
||||
s(jp, "health", p.getHealth());
|
||||
s(jp, "armor", Armor.getArmorPoints(p));
|
||||
}
|
||||
@@ -67,6 +93,22 @@ public class ClientUpdateComponent extends Component {
|
||||
}
|
||||
a(u, "players", jp);
|
||||
}
|
||||
if(configuration.getBoolean("includehiddenplayers", false)) {
|
||||
Set<Player> hidden = plugin.playerList.getHiddenPlayers();
|
||||
for(Player p : hidden) {
|
||||
JSONObject jp = new JSONObject();
|
||||
s(jp, "type", "player");
|
||||
s(jp, "name", ChatColor.stripColor(p.getDisplayName()));
|
||||
s(jp, "account", p.getName());
|
||||
s(jp, "world", "-hidden-player-");
|
||||
s(jp, "x", 0.0);
|
||||
s(jp, "y", 64.0);
|
||||
s(jp, "z", 0.0);
|
||||
s(jp, "health", 0);
|
||||
s(jp, "armor", 0);
|
||||
a(u, "players", jp);
|
||||
}
|
||||
}
|
||||
|
||||
s(u, "updates", new JSONArray());
|
||||
for(Object update : plugin.mapManager.getWorldUpdates(worldName, since)) {
|
||||
|
||||
@@ -28,6 +28,15 @@ public class ColorScheme {
|
||||
this.biomecolors = biomecolors;
|
||||
this.raincolors = raincolors;
|
||||
this.tempcolors = tempcolors;
|
||||
if(MapManager.mapman.getHideOres()) {
|
||||
for(int i = 0; i < colors.length; i++) {
|
||||
int id = MapManager.mapman.getBlockIDAlias(i);
|
||||
if(id != i) {
|
||||
this.colors[i] = this.colors[id];
|
||||
this.datacolors[i] = this.datacolors[id];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static File getColorSchemeDirectory() {
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package org.dynmap;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.reflect.Constructor;
|
||||
@@ -39,7 +36,6 @@ import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.block.BlockSpreadEvent;
|
||||
import org.bukkit.event.block.LeavesDecayEvent;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
@@ -53,7 +49,6 @@ import org.bukkit.event.world.ChunkPopulateEvent;
|
||||
import org.bukkit.event.world.SpawnChangeEvent;
|
||||
import org.bukkit.event.world.WorldListener;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
@@ -71,7 +66,7 @@ import org.dynmap.web.HttpServer;
|
||||
import org.dynmap.web.handlers.ClientConfigurationHandler;
|
||||
import org.dynmap.web.handlers.FilesystemHandler;
|
||||
|
||||
public class DynmapPlugin extends JavaPlugin {
|
||||
public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
||||
public HttpServer webServer = null;
|
||||
public MapManager mapManager = null;
|
||||
public PlayerList playerList;
|
||||
@@ -82,6 +77,17 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
public PlayerFaces playerfacemgr;
|
||||
public Events events = new Events();
|
||||
public String deftemplatesuffix = "";
|
||||
boolean swampshading = false;
|
||||
boolean waterbiomeshading = false;
|
||||
boolean fencejoin = false;
|
||||
public CompassMode compassmode = CompassMode.PRE19;
|
||||
|
||||
public enum CompassMode {
|
||||
PRE19, /* Default for 1.8 and earlier (east is Z+) */
|
||||
NEWROSE, /* Use same map orientation, fix rose */
|
||||
NEWNORTH /* Use new map orientation */
|
||||
};
|
||||
|
||||
/* Flag to let code know that we're doing reload - make sure we don't double-register event handlers */
|
||||
public boolean is_reload = false;
|
||||
private boolean generate_only = false;
|
||||
@@ -161,7 +167,9 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
}
|
||||
/* Table of default templates - all are resources in dynmap.jar unnder templates/, and go in templates directory when needed */
|
||||
private static final String[] stdtemplates = { "normal.txt", "nether.txt", "skylands.txt", "normal-lowres.txt",
|
||||
"nether-lowres.txt", "skylands-lowres.txt", "normal-hires.txt", "nether-hires.txt", "skylands-hires.txt"
|
||||
"nether-lowres.txt", "skylands-lowres.txt", "normal-hires.txt", "nether-hires.txt", "skylands-hires.txt",
|
||||
"normal-vlowres.txt", "skylands-vlowres.txt", "nether-vlowres.txt", "the_end.txt", "the_end-vlowres.txt",
|
||||
"the_end-lowres.txt", "the_end-hires.txt"
|
||||
};
|
||||
|
||||
private static final String CUSTOM_PREFIX = "custom-";
|
||||
@@ -211,14 +219,11 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
if (permissions == null)
|
||||
permissions = BukkitPermissions.create("dynmap");
|
||||
if (permissions == null)
|
||||
permissions = new OpPermissions(new String[] { "fullrender", "cancelrender", "radiusrender", "resetstats", "reload" });
|
||||
permissions = new OpPermissions(new String[] { "fullrender", "cancelrender", "radiusrender", "resetstats", "reload", "purgequeue" });
|
||||
|
||||
dataDirectory = this.getDataFolder();
|
||||
|
||||
/* Load block models */
|
||||
HDBlockModels.loadModels(dataDirectory);
|
||||
/* Load texture mappings */
|
||||
TexturePack.loadTextureMapping(dataDirectory);
|
||||
if(dataDirectory.exists() == false)
|
||||
dataDirectory.mkdirs();
|
||||
|
||||
/* Initialize confguration.txt if needed */
|
||||
File f = new File(this.getDataFolder(), "configuration.txt");
|
||||
@@ -231,6 +236,11 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
bukkitConfiguration.load();
|
||||
configuration = new ConfigurationNode(bukkitConfiguration);
|
||||
|
||||
/* Load block models */
|
||||
HDBlockModels.loadModels(dataDirectory, configuration);
|
||||
/* Load texture mappings */
|
||||
TexturePack.loadTextureMapping(dataDirectory, configuration);
|
||||
|
||||
/* Now, process worlds.txt - merge it in as an override of existing values (since it is only user supplied values) */
|
||||
f = new File(this.getDataFolder(), "worlds.txt");
|
||||
if(!createDefaultFileFromResource("/worlds.txt", f)) {
|
||||
@@ -247,6 +257,20 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
|
||||
Log.verbose = configuration.getBoolean("verbose", true);
|
||||
deftemplatesuffix = configuration.getString("deftemplatesuffix", "");
|
||||
/* Default swamp shading off for 1.8, on after */
|
||||
swampshading = configuration.getBoolean("swampshaded", !getServer().getVersion().contains("(MC: 1.8"));
|
||||
/* Default water biome shading off for 1.8, on after */
|
||||
waterbiomeshading = configuration.getBoolean("waterbiomeshaded", !getServer().getVersion().contains("(MC: 1.8"));
|
||||
/* Default fence-to-block-join off for 1.8, on after */
|
||||
fencejoin = configuration.getBoolean("fence-to-block-join", !getServer().getVersion().contains("(MC: 1.8"));
|
||||
/* Default compassmode to pre19, to newrose after */
|
||||
String cmode = configuration.getString("compass-mode", getServer().getVersion().contains("(MC: 1.8")?"pre19":"newrose");
|
||||
if(cmode.equals("newnorth"))
|
||||
compassmode = CompassMode.NEWNORTH;
|
||||
else if(cmode.equals("newrose"))
|
||||
compassmode = CompassMode.NEWROSE;
|
||||
else
|
||||
compassmode = CompassMode.PRE19;
|
||||
|
||||
loadDebuggers();
|
||||
|
||||
@@ -257,6 +281,16 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
|
||||
playerList = new PlayerList(getServer(), getFile("hiddenplayers.txt"), configuration);
|
||||
playerList.load();
|
||||
PlayerListener pl = new PlayerListener() {
|
||||
public void onPlayerJoin(PlayerJoinEvent evt) {
|
||||
playerList.updateOnlinePlayers(null);
|
||||
}
|
||||
public void onPlayerQuit(PlayerQuitEvent evt) {
|
||||
playerList.updateOnlinePlayers(evt.getPlayer());
|
||||
}
|
||||
};
|
||||
registerEvent(Type.PLAYER_JOIN, pl);
|
||||
registerEvent(Type.PLAYER_QUIT, pl);
|
||||
|
||||
mapManager = new MapManager(this, configuration);
|
||||
mapManager.startRendering();
|
||||
@@ -367,10 +401,9 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
ll.clear(); /* Empty list - we use presence of list to remember that we've registered with Bukkit */
|
||||
}
|
||||
playerfacemgr = null;
|
||||
if(markerapi != null) {
|
||||
markerapi.cleanup(this);
|
||||
markerapi = null;
|
||||
}
|
||||
|
||||
/* Don't clean up markerAPI - other plugins may still be accessing it */
|
||||
|
||||
Debug.clearDebuggers();
|
||||
}
|
||||
|
||||
@@ -401,7 +434,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onplace) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "blockplace");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,7 +445,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onbreak) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "blockbreak");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -423,7 +456,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onleaves) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "leavesdecay");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,7 +467,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onburn) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "blockburn");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,7 +478,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onblockform) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "blockform");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -456,7 +489,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onblockfade) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "blockfade");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -467,7 +500,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = event.getBlock().getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onblockspread) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "blockspread");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,9 +511,14 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Block b = event.getBlock();
|
||||
Location loc = b.getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
BlockFace dir = event.getDirection();
|
||||
BlockFace dir;
|
||||
try { /* Workaround Bukkit bug = http://leaky.bukkit.org/issues/1227 */
|
||||
dir = event.getDirection();
|
||||
} catch (ClassCastException ccx) {
|
||||
dir = BlockFace.NORTH;
|
||||
}
|
||||
if(onpiston) {
|
||||
mapManager.touchVolume(loc, b.getRelative(dir, 2).getLocation());
|
||||
mapManager.touchVolume(loc, b.getRelative(dir, 2).getLocation(), "pistonretract");
|
||||
}
|
||||
for(int i = 0; i < 2; i++) {
|
||||
b = b.getRelative(dir, 1);
|
||||
@@ -494,9 +532,14 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Block b = event.getBlock();
|
||||
Location loc = b.getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
BlockFace dir = event.getDirection();
|
||||
BlockFace dir;
|
||||
try { /* Workaround Bukkit bug = http://leaky.bukkit.org/issues/1227 */
|
||||
dir = event.getDirection();
|
||||
} catch (ClassCastException ccx) {
|
||||
dir = BlockFace.NORTH;
|
||||
}
|
||||
if(onpiston) {
|
||||
mapManager.touchVolume(loc, b.getRelative(dir, 1+event.getLength()).getLocation());
|
||||
mapManager.touchVolume(loc, b.getRelative(dir, 1+event.getLength()).getLocation(), "pistonextend");
|
||||
}
|
||||
for(int i = 0; i < 1+event.getLength(); i++) {
|
||||
b = b.getRelative(dir, 1);
|
||||
@@ -536,12 +579,12 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
PlayerListener playerTrigger = new PlayerListener() {
|
||||
@Override
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
mapManager.touch(event.getPlayer().getLocation());
|
||||
mapManager.touch(event.getPlayer().getLocation(), "playerjoin");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerMove(PlayerMoveEvent event) {
|
||||
mapManager.touch(event.getPlayer().getLocation());
|
||||
mapManager.touch(event.getPlayer().getLocation(), "playermove");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -561,7 +604,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Location loc = b.getLocation();
|
||||
mapManager.sscache.invalidateSnapshot(loc);
|
||||
if(onexplosion) {
|
||||
mapManager.touch(loc);
|
||||
mapManager.touch(loc, "entityexplode");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -579,13 +622,13 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
/* Touch extreme corners */
|
||||
int x = event.getChunk().getX() << 4;
|
||||
int z = event.getChunk().getZ() << 4;
|
||||
mapManager.touchVolume(new Location(event.getWorld(), x, 0, z), new Location(event.getWorld(), x+15, 127, z+15));
|
||||
mapManager.touchVolume(new Location(event.getWorld(), x, 0, z), new Location(event.getWorld(), x+16, 128, z+16), "chunkload");
|
||||
}
|
||||
@Override
|
||||
public void onChunkPopulate(ChunkPopulateEvent event) {
|
||||
int x = event.getChunk().getX() << 4;
|
||||
int z = event.getChunk().getZ() << 4;
|
||||
mapManager.touchVolume(new Location(event.getWorld(), x, 0, z), new Location(event.getWorld(), x+15, 127, z+15));
|
||||
mapManager.touchVolume(new Location(event.getWorld(), x, 0, z), new Location(event.getWorld(), x+16, 128, z+16), "chunkgenerate");
|
||||
}
|
||||
@Override
|
||||
public void onWorldLoad(WorldLoadEvent event) {
|
||||
@@ -637,6 +680,44 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse argument strings : handle quoted strings */
|
||||
public static String[] parseArgs(String[] args, CommandSender snd) {
|
||||
ArrayList<String> rslt = new ArrayList<String>();
|
||||
/* Build command line, so we can parse our way - make sure there is trailing space */
|
||||
String cmdline = "";
|
||||
for(int i = 0; i < args.length; i++) {
|
||||
cmdline += args[i] + " ";
|
||||
}
|
||||
boolean inquote = false;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(int i = 0; i < cmdline.length(); i++) {
|
||||
char c = cmdline.charAt(i);
|
||||
if(inquote) { /* If in quote, accumulate until end or another quote */
|
||||
if(c == '\"') { /* End quote */
|
||||
inquote = false;
|
||||
}
|
||||
else {
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
else if(c == '\"') { /* Start of quote? */
|
||||
inquote = true;
|
||||
}
|
||||
else if(c == ' ') { /* Ending space? */
|
||||
rslt.add(sb.toString());
|
||||
sb.setLength(0);
|
||||
}
|
||||
else {
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
if(inquote) { /* If still in quote, syntax error */
|
||||
snd.sendMessage("Error: unclosed doublequote");
|
||||
return null;
|
||||
}
|
||||
return rslt.toArray(new String[rslt.size()]);
|
||||
}
|
||||
|
||||
private static final Set<String> commands = new HashSet<String>(Arrays.asList(new String[] {
|
||||
"render",
|
||||
"hide",
|
||||
@@ -646,7 +727,10 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
"radiusrender",
|
||||
"reload",
|
||||
"stats",
|
||||
"resetstats" }));
|
||||
"triggerstats",
|
||||
"resetstats",
|
||||
"sendtoweb",
|
||||
"purgequeue" }));
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
|
||||
@@ -658,6 +742,12 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
Player player = null;
|
||||
if (sender instanceof Player)
|
||||
player = (Player) sender;
|
||||
/* Re-parse args - handle doublequotes */
|
||||
args = parseArgs(args, sender);
|
||||
|
||||
if(args == null)
|
||||
return false;
|
||||
|
||||
if (args.length > 0) {
|
||||
String c = args[0];
|
||||
if (!commands.contains(c)) {
|
||||
@@ -666,7 +756,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
|
||||
if (c.equals("render") && checkPlayerPermission(sender,"render")) {
|
||||
if (player != null) {
|
||||
int invalidates = mapManager.touch(player.getLocation());
|
||||
int invalidates = mapManager.touch(player.getLocation(), "render");
|
||||
sender.sendMessage("Queued " + invalidates + " tiles" + (invalidates == 0
|
||||
? " (world is not loaded?)"
|
||||
: "..."));
|
||||
@@ -730,7 +820,8 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
}
|
||||
w = mapManager.getWorld(wname);
|
||||
if(w != null) {
|
||||
Location loc = new Location(w.world, w.configuration.getFloat("center/x", 0.0f), w.configuration.getFloat("center/y", 64f), w.configuration.getFloat("center/z", 0.0f));
|
||||
Location spawn = w.world.getSpawnLocation();
|
||||
Location loc = new Location(w.world, w.configuration.getDouble("center/x", spawn.getX()), w.configuration.getDouble("center/y", spawn.getY()), w.configuration.getDouble("center/z", spawn.getZ()));
|
||||
mapManager.renderFullWorld(loc,sender, map);
|
||||
}
|
||||
else
|
||||
@@ -761,6 +852,8 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
} else {
|
||||
sender.sendMessage("World name is required");
|
||||
}
|
||||
} else if (c.equals("purgequeue") && checkPlayerPermission(sender, "purgequeue")) {
|
||||
mapManager.purgeQueue(sender);
|
||||
} else if (c.equals("reload") && checkPlayerPermission(sender, "reload")) {
|
||||
sender.sendMessage("Reloading Dynmap...");
|
||||
reload();
|
||||
@@ -770,11 +863,19 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
mapManager.printStats(sender, null);
|
||||
else
|
||||
mapManager.printStats(sender, args[1]);
|
||||
} else if (c.equals("triggerstats") && checkPlayerPermission(sender, "stats")) {
|
||||
mapManager.printTriggerStats(sender);
|
||||
} else if (c.equals("resetstats") && checkPlayerPermission(sender, "resetstats")) {
|
||||
if(args.length == 1)
|
||||
mapManager.resetStats(sender, null);
|
||||
else
|
||||
mapManager.resetStats(sender, args[1]);
|
||||
} else if (c.equals("sendtoweb") && checkPlayerPermission(sender, "sendtoweb")) {
|
||||
String msg = "";
|
||||
for(int i = 1; i < args.length; i++) {
|
||||
msg += args[i] + " ";
|
||||
}
|
||||
this.sendBroadcastToWeb("dynmap", msg);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1200,7 +1301,39 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
}
|
||||
return markerapi;
|
||||
}
|
||||
|
||||
public boolean markerAPIInitialized() {
|
||||
return (markerapi != null);
|
||||
}
|
||||
/**
|
||||
* Send generic message to all web users
|
||||
* @param sender - label for sender of message ("[<sender>] nessage") - if null, no from notice
|
||||
* @param msg - message to be sent
|
||||
*/
|
||||
public boolean sendBroadcastToWeb(String sender, String msg) {
|
||||
if(mapManager != null) {
|
||||
mapManager.pushUpdate(new Client.ChatMessage("plugin", sender, "", msg, ""));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Trigger update on tiles associated with given locations. If two locations provided,
|
||||
* the volume is the rectangular prism ("cuboid") with the two locations on opposite corners.
|
||||
*
|
||||
* @param l0 - first location (required)
|
||||
* @param l1 - second location (if null, only single point invalidated (l0))
|
||||
* @return number of tiles queued to be rerendered
|
||||
*/
|
||||
public int triggerRenderOfVolume(Location l0, Location l1) {
|
||||
if(mapManager != null) {
|
||||
if(l1 == null)
|
||||
return mapManager.touch(l0, "api");
|
||||
else
|
||||
return mapManager.touchVolume(l0, l1, "api");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register markers API - used by component to supply marker API to plugin
|
||||
*/
|
||||
|
||||
@@ -93,10 +93,12 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent {
|
||||
int retrycnt = 0;
|
||||
boolean done = false;
|
||||
while(!done) {
|
||||
FileOutputStream fos = null;
|
||||
try {
|
||||
FileOutputStream fos = new FileOutputStream(outputTempFile);
|
||||
fos = new FileOutputStream(outputTempFile);
|
||||
fos.write(clientConfiguration.toJSONString().getBytes("UTF-8"));
|
||||
fos.close();
|
||||
fos = null;
|
||||
outputFile.delete();
|
||||
outputTempFile.renameTo(outputFile);
|
||||
done = true;
|
||||
@@ -109,6 +111,14 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent {
|
||||
Log.severe("Exception while writing JSON-configuration-file.", ioe);
|
||||
done = true;
|
||||
}
|
||||
} finally {
|
||||
if(fos != null) {
|
||||
try {
|
||||
fos.close();
|
||||
} catch (IOException iox) {
|
||||
}
|
||||
fos = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,10 +142,12 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent {
|
||||
int retrycnt = 0;
|
||||
boolean done = false;
|
||||
while(!done) {
|
||||
FileOutputStream fos = null;
|
||||
try {
|
||||
FileOutputStream fos = new FileOutputStream(outputTempFile);
|
||||
fos = new FileOutputStream(outputTempFile);
|
||||
fos.write(Json.stringifyJson(update).getBytes("UTF-8"));
|
||||
fos.close();
|
||||
fos = null;
|
||||
outputFile.delete();
|
||||
outputTempFile.renameTo(outputFile);
|
||||
done = true;
|
||||
@@ -148,6 +160,14 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent {
|
||||
Log.severe("Exception while writing JSON-file.", ioe);
|
||||
done = true;
|
||||
}
|
||||
} finally {
|
||||
if(fos != null) {
|
||||
try {
|
||||
fos.close();
|
||||
} catch (IOException iox) {
|
||||
}
|
||||
fos = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
plugin.events.<ClientUpdateEvent>trigger("clientupdatewritten", clientUpdate);
|
||||
@@ -160,14 +180,23 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent {
|
||||
File webchatFile = getStandaloneFile("dynmap_webchat.json");
|
||||
if (webchatFile.exists() && lastTimestamp != 0) {
|
||||
JSONArray jsonMsgs = null;
|
||||
Reader inputFileReader = null;
|
||||
try {
|
||||
Reader inputFileReader = new InputStreamReader(new FileInputStream(webchatFile), cs_utf8);
|
||||
inputFileReader = new InputStreamReader(new FileInputStream(webchatFile), cs_utf8);
|
||||
jsonMsgs = (JSONArray) parser.parse(inputFileReader);
|
||||
inputFileReader.close();
|
||||
} catch (IOException ex) {
|
||||
Log.severe("Exception while reading JSON-file.", ex);
|
||||
} catch (ParseException ex) {
|
||||
Log.severe("Exception while parsing JSON-file.", ex);
|
||||
} finally {
|
||||
if(inputFileReader != null) {
|
||||
try {
|
||||
inputFileReader.close();
|
||||
} catch (IOException iox) {
|
||||
|
||||
}
|
||||
inputFileReader = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (jsonMsgs != null) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,8 @@
|
||||
package org.dynmap;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.World;
|
||||
@@ -36,13 +38,7 @@ public abstract class MapTile {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof MapTile) {
|
||||
MapTile t = (MapTile)obj;
|
||||
return getFilename().equals(t.getFilename()) && getWorld().equals(t.getWorld());
|
||||
}
|
||||
return super.equals(obj);
|
||||
}
|
||||
public abstract boolean equals(Object obj);
|
||||
|
||||
public abstract String getKey();
|
||||
|
||||
@@ -54,4 +50,29 @@ public abstract class MapTile {
|
||||
public abstract int tileOrdinalX();
|
||||
public abstract int tileOrdinalY();
|
||||
|
||||
public ConfigurationNode saveTile() {
|
||||
ConfigurationNode cn = new ConfigurationNode();
|
||||
cn.put("class", this.getClass().getName());
|
||||
cn.put("data", saveTileData());
|
||||
return cn;
|
||||
}
|
||||
|
||||
protected abstract String saveTileData();
|
||||
|
||||
public static MapTile restoreTile(DynmapWorld w, ConfigurationNode node) {
|
||||
String cn = node.getString("class");
|
||||
String dat = node.getString("data");
|
||||
if((cn == null) || (dat == null)) return null;
|
||||
try {
|
||||
Class cls = Class.forName(cn);
|
||||
Constructor con = cls.getConstructor(DynmapWorld.class, String.class);
|
||||
return (MapTile)con.newInstance(w, dat);
|
||||
} catch (ClassNotFoundException cnfx) {
|
||||
} catch (NoSuchMethodException nsmx) {
|
||||
} catch (InvocationTargetException itx) {
|
||||
} catch (IllegalAccessException iax) {
|
||||
} catch (InstantiationException ix) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,4 +80,5 @@ public abstract class MapType {
|
||||
* Values correspond to tile X,Y (0), X+step,Y (1), X,Y+step (2), X+step,Y+step (3)
|
||||
*/
|
||||
public abstract int[] zoomFileStepSequence();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
package org.dynmap;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.world.SpawnChangeEvent;
|
||||
import org.bukkit.event.world.WorldListener;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
@@ -19,12 +25,21 @@ public class MarkersComponent extends ClientComponent {
|
||||
private MarkerSignManager signmgr;
|
||||
private MarkerIcon spawnicon;
|
||||
private String spawnlbl;
|
||||
private MarkerSet offlineset;
|
||||
private MarkerIcon offlineicon;
|
||||
|
||||
public MarkersComponent(DynmapPlugin plugin, ConfigurationNode configuration) {
|
||||
private static final String OFFLINE_PLAYERS_SETID = "offline_players";
|
||||
|
||||
public MarkersComponent(final DynmapPlugin plugin, ConfigurationNode configuration) {
|
||||
super(plugin, configuration);
|
||||
/* Register API with plugin */
|
||||
api = MarkerAPIImpl.initializeMarkerAPI(plugin);
|
||||
plugin.registerMarkerAPI(api);
|
||||
/* Register API with plugin, if needed */
|
||||
if(plugin.markerAPIInitialized()) {
|
||||
api = (MarkerAPIImpl)plugin.getMarkerAPI();
|
||||
}
|
||||
else {
|
||||
api = MarkerAPIImpl.initializeMarkerAPI(plugin);
|
||||
plugin.registerMarkerAPI(api);
|
||||
}
|
||||
/* If configuration has enabled sign support, prime it too */
|
||||
if(configuration.getBoolean("enablesigns", false)) {
|
||||
signmgr = MarkerSignManager.initializeSignManager(plugin);
|
||||
@@ -61,6 +76,52 @@ public class MarkersComponent extends ClientComponent {
|
||||
addUpdateWorld(world, loc);
|
||||
}
|
||||
}
|
||||
/* If showing offline players as markers */
|
||||
if(configuration.getBoolean("showofflineplayers", false)) {
|
||||
/* Make set, if needed */
|
||||
offlineset = api.getMarkerSet(OFFLINE_PLAYERS_SETID);
|
||||
if(offlineset == null) {
|
||||
offlineset = api.createMarkerSet(OFFLINE_PLAYERS_SETID, configuration.getString("offlinelabel", "Offline"), null, true);
|
||||
}
|
||||
offlineset.setHideByDefault(configuration.getBoolean("offlinehidebydefault", true));
|
||||
|
||||
offlineicon = api.getMarkerIcon(configuration.getString("offlineicon", "offlineuser"));
|
||||
|
||||
/* Add listener for players coming and going */
|
||||
PlayerListener pl = new PlayerListener() {
|
||||
@Override
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
Marker m = offlineset.findMarker(p.getName());
|
||||
if(m != null) {
|
||||
m.deleteMarker();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
Marker m = offlineset.findMarker(p.getName());
|
||||
if(m != null) {
|
||||
m.deleteMarker();
|
||||
}
|
||||
if(plugin.playerList.isVisiblePlayer(p)) {
|
||||
Location loc = p.getLocation();
|
||||
m = offlineset.createMarker(p.getName(), ChatColor.stripColor(p.getDisplayName()), false,
|
||||
loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(),
|
||||
offlineicon, true);
|
||||
}
|
||||
}
|
||||
};
|
||||
plugin.registerEvent(Type.PLAYER_JOIN, pl);
|
||||
plugin.registerEvent(Type.PLAYER_QUIT, pl);
|
||||
}
|
||||
else {
|
||||
/* Make set, if needed */
|
||||
offlineset = api.getMarkerSet(OFFLINE_PLAYERS_SETID);
|
||||
if(offlineset != null) {
|
||||
offlineset.deleteMarkerSet();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addUpdateWorld(World w, Location loc) {
|
||||
@@ -84,11 +145,6 @@ public class MarkersComponent extends ClientComponent {
|
||||
MarkerSignManager.terminateSignManager(this.plugin);
|
||||
signmgr = null;
|
||||
}
|
||||
if(api != null) {
|
||||
/* Clean up API registered with plugin */
|
||||
plugin.registerMarkerAPI(null);
|
||||
api.cleanup(this.plugin);
|
||||
api = null;
|
||||
}
|
||||
/* Don't unregister API - other plugins might be using it, and we want to keep non-persistent markers */
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user