Codebase list minetestmapper / f9ea776
New upstream version 20191011 Julien Puydt 4 years ago
14 changed file(s) with 576 addition(s) and 410 deletion(s). Raw diff Collapse all Expand all
11 compiler:
22 - gcc
33 - clang
4 sudo: false
5 dist: trusty
6 addons:
7 apt:
8 sources:
9 - llvm-toolchain-trusty-5.0
10 - ubuntu-toolchain-r-test
11 packages:
12 - cmake
13 - libgd2-dev
14 - libsqlite3-dev
15 - libleveldb-dev
16 - g++-7
17 - clang-5.0
4 dist: bionic
5 before_install: sudo apt-get install -y cmake libgd-dev libsqlite3-dev libleveldb-dev
186 script: ./util/travis/script.sh
197 notifications:
208 email: false
1818
1919 static inline int color2int(Color c)
2020 {
21 u8 a = 255 - c.a;
21 u8 a = (255 - c.a) * gdAlphaMax / 255;
2222 return (a << 24) | (c.r << 16) | (c.g << 8) | c.b;
2323 }
2424
3030 c2.g = (c >> 8) & 0xff;
3131 c2.r = (c >> 16) & 0xff;
3232 a = (c >> 24) & 0xff;
33 c2.a = 255 - a;
33 c2.a = 255 - (a*255 / gdAlphaMax);
3434 return c2;
3535 }
3636
7676 drawalpha:
7777 Allow nodes to be drawn with transparency (e.g. water), ``--drawalpha``
7878
79 extent:
80 Don't output any imagery, just print the extent of the full map, ``--extent``
81
7982 noshading:
8083 Don't draw shading on nodes, ``--noshading``
84
85 noemptyimage:
86 Don't output anything when the image would be empty, ``--noemptyimage``
8187
8288 min-y:
8389 Don't draw nodes below this y value, e.g. ``--min-y -25``
7878 m_drawScale(false),
7979 m_drawAlpha(false),
8080 m_shading(true),
81 m_dontWriteEmpty(false),
8182 m_backend(""),
8283 m_xBorder(0),
8384 m_yBorder(0),
207208 parseColorsStream(in);
208209 }
209210
210 void TileGenerator::generate(const std::string &input, const std::string &output)
211 void TileGenerator::printGeometry(const std::string &input)
211212 {
212213 string input_path = input;
213214 if (input_path[input.length() - 1] != PATH_SEPARATOR) {
216217
217218 openDb(input_path);
218219 loadBlocks();
220
221 std::cout << "Map extent: "
222 << m_xMin*16 << ":" << m_zMin*16
223 << "+" << (m_xMax - m_xMin+1)*16
224 << "+" << (m_zMax - m_zMin+1)*16
225 << std::endl;
226
227 closeDatabase();
228
229 }
230
231 void TileGenerator::setDontWriteEmpty(bool f)
232 {
233 m_dontWriteEmpty = f;
234 }
235
236 void TileGenerator::generate(const std::string &input, const std::string &output)
237 {
238 string input_path = input;
239 if (input_path[input.length() - 1] != PATH_SEPARATOR) {
240 input_path += PATH_SEPARATOR;
241 }
242
243 openDb(input_path);
244 loadBlocks();
245
246 if (m_dontWriteEmpty && ! m_positions.size())
247 {
248 closeDatabase();
249 return;
250 }
251
219252 createImage();
220253 renderMap();
221254 closeDatabase();
247280 if(strlen(line) == 0)
248281 continue;
249282
250 char name[64];
283 char name[64 + 1];
251284 unsigned int r, g, b, a, t;
252285 a = 255;
253286 t = 0;
330363 if(!m_drawScale)
331364 m_scales = 0;
332365
366
367 // If a geometry is explicitly set, set the bounding box to the requested geometry
368 // instead of cropping to the content. This way we will always output a full tile
369 // of the correct size.
370 if (m_geomX > -2048 && m_geomX2 < 2048)
371 {
372 m_xMin = m_geomX;
373 m_xMax = m_geomX2-1;
374 }
375
376 if (m_geomY > -2048 && m_geomY2 < 2048)
377 {
378 m_zMin = m_geomY;
379 m_zMax = m_geomY2-1;
380 }
381
333382 m_mapWidth = (m_xMax - m_xMin + 1) * 16;
334383 m_mapHeight = (m_zMax - m_zMin + 1) * 16;
384
335385 m_xBorder = (m_scales & SCALE_LEFT) ? scale_d : 0;
336386 m_yBorder = (m_scales & SCALE_TOP) ? scale_d : 0;
337387 m_blockPixelAttributes.setWidth(m_mapWidth);
514564 if (m_scales & SCALE_TOP) {
515565 m_image->drawText(24, 0, "X", m_scaleColor);
516566 for (int i = (m_xMin / 4) * 4; i <= m_xMax; i += 4) {
517 stringstream buf;
567 std::ostringstream buf;
518568 buf << i * 16;
519569
520570 int xPos = getImageX(i * 16, true);
528578 if (m_scales & SCALE_LEFT) {
529579 m_image->drawText(2, 24, "Z", m_scaleColor);
530580 for (int i = (m_zMax / 4) * 4; i >= m_zMin; i -= 4) {
531 stringstream buf;
581 std::ostringstream buf;
532582 buf << i * 16;
533583
534584 int yPos = getImageY(i * 16 + 1, true);
544594 yPos = m_yBorder + m_mapHeight*m_zoom + scale_d - 12;
545595 m_image->drawText(xPos, yPos, "X", m_scaleColor);
546596 for (int i = (m_xMin / 4) * 4; i <= m_xMax; i += 4) {
547 stringstream buf;
597 std::ostringstream buf;
548598 buf << i * 16;
549599
550600 xPos = getImageX(i * 16, true);
561611 yPos = m_yBorder + m_mapHeight*m_zoom - 24 - 12;
562612 m_image->drawText(xPos, yPos, "Z", m_scaleColor);
563613 for (int i = (m_zMax / 4) * 4; i >= m_zMin; i -= 4) {
564 stringstream buf;
614 std::ostringstream buf;
565615 buf << i * 16;
566616
567617 xPos = m_xBorder + m_mapWidth*m_zoom;
6464 ==FILE== avgcolor.py
6565 #!/usr/bin/env python
6666 import sys
67 from math import sqrt
6768 from PIL import Image
68
69 def tadd(a, b):
70 return tuple(sum(e) for e in zip(a, b))
7169
7270 if len(sys.argv) < 2:
7371 print("Prints average color (RGB) of input image")
7775 inp = Image.open(sys.argv[1]).convert('RGBA')
7876 ind = inp.load()
7977
80 cl = (0, 0, 0)
81 counted = 0
78 cl = ([], [], [])
8279 for x in range(inp.size[0]):
8380 for y in range(inp.size[1]):
8481 px = ind[x, y]
8582 if px[3] < 128: continue # alpha
86 cl = tadd(cl, px[:3])
87 counted += 1
83 cl[0].append(px[0]**2)
84 cl[1].append(px[1]**2)
85 cl[2].append(px[2]**2)
8886
89 if counted == 0:
90 sys.stderr.write("did not find avg color for %s\n" % sys.argv[1])
87 if len(cl[0]) == 0:
88 print("Didn't find average color for %s" % sys.argv[1], file=sys.stderr)
9189 print("0 0 0")
9290 else:
93 cl = tuple(int(n / counted) for n in cl)
91 cl = tuple(sqrt(sum(x)/len(x)) for x in cl)
9492 print("%d %d %d" % cl)
9593 ==SCRIPT==
9694 #!/bin/bash -e
124122 # Delete some usually hidden nodes:
125123 sed '/^doors:hidden /d' $COLORSTXT_PATH -i
126124 sed '/^fireflies:firefly /d' $COLORSTXT_PATH -i
125 sed '/^butterflies:butterfly_/d' $COLORSTXT_PATH -i
127126 ==INSTRUCTIONS==
128127 1) Make sure avgcolors.py works (outputs the usage instructions when run)
129128 2) Add the dumpnodes mod to Minetest
00 # beds
11 beds:bed_bottom 130 3 3
2 beds:bed_top 178 116 116
3 beds:fancy_bed_bottom 135 23 14
4 beds:fancy_bed_top 172 112 103
2 beds:bed_top 185 162 163
3 beds:fancy_bed_bottom 136 49 28
4 beds:fancy_bed_top 179 153 148
55
66 # bones
7 bones:bones 86 86 86
7 bones:bones 117 117 117
8
9 # butterflies
810
911 # carts
10 carts:brakerail 129 110 81
11 carts:powerrail 154 136 81
12 carts:rail 143 123 90
12 carts:brakerail 138 121 102
13 carts:powerrail 160 145 102
14 carts:rail 146 128 108
1315
1416 # default
15 default:acacia_bush_leaves 90 124 55
16 default:acacia_bush_sapling 85 118 58
17 default:acacia_bush_stem 84 76 69
18 default:acacia_leaves 108 147 67
19 default:acacia_sapling 87 116 61
20 default:acacia_tree 188 109 90
21 default:acacia_wood 146 60 37
22 default:apple 145 20 9
23 default:aspen_leaves 70 104 27
24 default:aspen_sapling 82 110 43
25 default:aspen_tree 218 197 166
26 default:aspen_wood 209 198 169
27 default:bookshelf 128 99 55
28 default:brick 117 71 69
29 default:bronzeblock 185 110 15
30 default:bush_leaves 34 52 29
31 default:bush_sapling 65 60 40
32 default:bush_stem 45 33 23
33 default:cactus 52 116 15
34 default:cave_ice 167 206 247
35 default:chest 140 108 65
36 default:chest_locked 140 108 65
37 default:chest_locked_open 140 108 65
38 default:chest_open 140 108 65
39 default:clay 182 182 182
17 default:acacia_bush_leaves 109 133 87
18 default:acacia_bush_sapling 85 121 61
19 default:acacia_bush_stem 84 77 70
20 default:acacia_leaves 126 153 101
21 default:acacia_sapling 87 120 64
22 default:acacia_tree 195 119 97
23 default:acacia_wood 150 61 39
24 default:apple 161 34 19
25 default:aspen_leaves 72 105 29
26 default:aspen_sapling 85 123 45
27 default:aspen_tree 218 198 168
28 default:aspen_wood 210 199 170
29 default:blueberry_bush_leaves 63 99 22
30 default:blueberry_bush_leaves_with_berries 63 99 22
31 default:blueberry_bush_sapling 81 112 33
32 default:bookshelf 131 102 57
33 default:brick 123 99 95
34 default:bronzeblock 186 111 15
35 default:bush_leaves 35 55 29
36 default:bush_sapling 66 64 40
37 default:bush_stem 46 34 24
38 default:cactus 70 119 52
39 default:cave_ice 168 206 247
40 default:chest 149 115 69
41 default:chest_locked 149 115 69
42 default:chest_locked_open 149 115 69
43 default:chest_open 149 115 69
44 default:clay 183 183 183
4045 default:cloud 255 255 255
41 default:coalblock 57 57 57
42 default:cobble 88 84 82
43 default:copperblock 192 126 63
44 default:coral_brown 139 104 72
45 default:coral_orange 191 62 12
46 default:coral_skeleton 235 230 214
47 default:desert_cobble 107 65 49
46 default:coalblock 58 58 58
47 default:cobble 89 86 84
48 default:copperblock 193 126 65
49 default:coral_brown 146 113 77
50 default:coral_cyan 235 230 215
51 default:coral_green 235 230 215
52 default:coral_orange 197 68 17
53 default:coral_pink 235 230 215
54 default:coral_skeleton 235 230 215
55 default:desert_cobble 110 67 50
4856 default:desert_sand 206 165 98
4957 default:desert_sandstone 195 152 92
50 default:desert_sandstone_block 192 151 94
51 default:desert_sandstone_brick 191 151 94
52 default:desert_stone 129 79 60
53 default:desert_stone_block 130 79 60
54 default:desert_stonebrick 129 79 60
55 default:diamondblock 135 217 223
56 default:dirt 95 64 39
57 default:dirt_with_coniferous_litter 107 88 68
58 default:dirt_with_dry_grass 187 148 77
59 default:dirt_with_grass 66 112 31
60 default:dirt_with_grass_footsteps 66 112 31
61 default:dirt_with_rainforest_litter 74 38 8
62 default:dirt_with_snow 224 225 238
58 default:desert_sandstone_block 193 152 94
59 default:desert_sandstone_brick 191 151 95
60 default:desert_stone 130 79 61
61 default:desert_stone_block 131 80 61
62 default:desert_stonebrick 131 80 61
63 default:diamondblock 140 218 223
64 default:dirt 97 67 43
65 default:dirt_with_coniferous_litter 109 90 71
66 default:dirt_with_dry_grass 187 148 78
67 default:dirt_with_grass 64 111 26
68 default:dirt_with_grass_footsteps 64 111 26
69 default:dirt_with_rainforest_litter 76 39 10
70 default:dirt_with_snow 225 225 238
71 default:dry_dirt 178 136 90
72 default:dry_dirt_with_dry_grass 187 148 78
6373 default:dry_grass_1 208 172 87
6474 default:dry_grass_2 210 174 87
6575 default:dry_grass_3 210 174 87
6676 default:dry_grass_4 211 175 88
67 default:dry_grass_5 213 178 92
68 default:dry_shrub 101 66 17
69 default:emergent_jungle_sapling 48 39 15
70 default:fence_acacia_wood 147 60 38
77 default:dry_grass_5 214 178 92
78 default:dry_shrub 103 67 18
79 default:emergent_jungle_sapling 51 40 16
80 default:fence_acacia_wood 151 62 39
7181 default:fence_aspen_wood 210 199 170
72 default:fence_junglewood 54 37 11
73 default:fence_pine_wood 221 184 129
74 default:fence_wood 129 100 55
75 default:fern_1 81 114 48
76 default:fern_2 86 118 50
77 default:fern_3 88 121 52
78 default:furnace 100 96 94
79 default:furnace_active 100 96 94
80 default:glass 194 194 227 64 16
81 default:goldblock 230 201 29
82 default:grass_1 97 138 53
83 default:grass_2 95 136 54
84 default:grass_3 91 133 52
85 default:grass_4 86 130 45
86 default:grass_5 83 124 47
87 default:gravel 131 131 131
88 default:ice 167 206 247
89 default:junglegrass 63 105 25
90 default:jungleleaves 20 28 15
91 default:junglesapling 48 38 14
92 default:jungletree 105 76 41
93 default:junglewood 54 37 11
94 default:ladder_steel 126 126 126
95 default:ladder_wood 123 90 34
82 default:fence_junglewood 57 39 14
83 default:fence_pine_wood 221 185 131
84 default:fence_rail_acacia_wood 150 61 39
85 default:fence_rail_aspen_wood 209 198 170
86 default:fence_rail_junglewood 56 39 14
87 default:fence_rail_pine_wood 221 184 130
88 default:fence_rail_wood 131 102 57
89 default:fence_wood 132 103 57
90 default:fern_1 85 118 51
91 default:fern_2 90 123 53
92 default:fern_3 91 125 54
93 default:furnace 101 98 96
94 default:furnace_active 101 98 96
95 default:glass 247 247 247 64 16
96 default:goldblock 231 203 35
97 default:grass_1 100 140 54
98 default:grass_2 98 139 55
99 default:grass_3 94 136 53
100 default:grass_4 89 133 48
101 default:grass_5 86 126 48
102 default:gravel 132 132 132
103 default:ice 168 206 247
104 default:junglegrass 67 110 28
105 default:jungleleaves 22 31 16
106 default:junglesapling 51 39 15
107 default:jungletree 121 97 62
108 default:junglewood 56 39 14
109 default:ladder_steel 132 132 132
110 default:ladder_wood 125 93 43
111 default:large_cactus_seedling 67 107 52
96112 default:lava_flowing 255 100 0
97113 default:lava_source 255 100 0
98 default:leaves 34 52 29
99 default:marram_grass_1 96 133 89
100 default:marram_grass_2 87 126 83
101 default:marram_grass_3 85 125 82
102 default:mese 220 220 0
103 default:mese_post_light 131 102 57
104 default:meselamp 211 213 139
105 default:mossycobble 86 90 68
106 default:obsidian 19 21 24
107 default:obsidian_block 20 22 25
108 default:obsidian_glass 19 21 23 64 16
109 default:obsidianbrick 20 22 24
110 default:papyrus 94 132 33
111 default:pine_needles 11 48 18
112 default:pine_sapling 27 48 25
113 default:pine_tree 182 155 124
114 default:pine_wood 221 184 128
114 default:leaves 36 55 29
115 default:marram_grass_1 113 139 96
116 default:marram_grass_2 102 131 90
117 default:marram_grass_3 99 130 88
118 default:mese 222 222 0
119 default:mese_post_light 134 105 59
120 default:meselamp 213 215 143
121 default:mossycobble 88 91 73
122 default:obsidian 21 24 29
123 default:obsidian_block 23 25 30
124 default:obsidian_glass 20 23 27 64 16
125 default:obsidianbrick 23 25 29
126 default:papyrus 97 134 38
127 default:permafrost 71 66 61
128 default:permafrost_with_moss 108 150 51
129 default:permafrost_with_stones 71 66 61
130 default:pine_bush_needles 16 50 19
131 default:pine_bush_sapling 58 51 40
132 default:pine_bush_stem 73 62 53
133 default:pine_needles 16 50 19
134 default:pine_sapling 41 48 26
135 default:pine_tree 191 165 132
136 default:pine_wood 221 185 130
115137 default:river_water_flowing 39 66 106 128 224
116138 default:river_water_source 39 66 106 128 224
117139 default:sand 214 207 158
118140 default:sand_with_kelp 214 207 158
119 default:sandstone 197 193 143
120 default:sandstone_block 195 190 141
121 default:sandstonebrick 193 189 140
122 default:sapling 65 59 40
123 default:sign_wall_steel 144 144 144
124 default:sign_wall_wood 145 101 64
141 default:sandstone 198 193 143
142 default:sandstone_block 195 191 142
143 default:sandstonebrick 194 190 141
144 default:sapling 67 63 41
145 default:sign_wall_steel 147 147 147
146 default:sign_wall_wood 148 103 66
125147 default:silver_sand 193 191 179
126148 default:silver_sandstone 195 192 181
127 default:silver_sandstone_block 192 190 179
128 default:silver_sandstone_brick 190 188 178
129 default:snow 224 225 238
130 default:snowblock 224 225 238
131 default:steelblock 194 194 194
149 default:silver_sandstone_block 192 190 180
150 default:silver_sandstone_brick 191 189 179
151 default:snow 225 225 238
152 default:snowblock 225 225 238
153 default:steelblock 195 195 195
132154 default:stone 97 94 93
133 default:stone_block 99 96 95
155 default:stone_block 100 97 96
134156 default:stone_with_coal 97 94 93
135157 default:stone_with_copper 97 94 93
136158 default:stone_with_diamond 97 94 93
138160 default:stone_with_iron 97 94 93
139161 default:stone_with_mese 97 94 93
140162 default:stone_with_tin 97 94 93
141 default:stonebrick 99 96 95
142 default:tinblock 149 149 149
143 default:torch 120 98 67
144 default:torch_ceiling 120 98 67
145 default:torch_wall 120 98 67
146 default:tree 164 131 88
163 default:stonebrick 102 99 98
164 default:tinblock 150 150 150
165 default:torch 141 123 93
166 default:torch_ceiling 141 123 93
167 default:torch_wall 141 123 93
168 default:tree 179 145 99
147169 default:water_flowing 39 66 106 128 224
148170 default:water_source 39 66 106 128 224
149 default:wood 128 99 55
171 default:wood 131 102 57
150172
151173 # doors
152 doors:door_glass_a 184 184 216 64 16
153 doors:door_glass_b 184 184 216 64 16
154 doors:door_obsidian_glass_a 27 28 29 64 16
155 doors:door_obsidian_glass_b 27 28 29 64 16
156 doors:door_steel_a 201 201 201
157 doors:door_steel_b 201 201 201
158 doors:door_wood_a 87 67 35
159 doors:door_wood_b 87 67 35
160 doors:gate_acacia_wood_closed 146 60 37
161 doors:gate_acacia_wood_open 146 60 37
162 doors:gate_aspen_wood_closed 209 198 169
163 doors:gate_aspen_wood_open 209 198 169
164 doors:gate_junglewood_closed 54 37 11
165 doors:gate_junglewood_open 54 37 11
166 doors:gate_pine_wood_closed 221 184 128
167 doors:gate_pine_wood_open 221 184 128
168 doors:gate_wood_closed 128 99 55
169 doors:gate_wood_open 128 99 55
170 doors:trapdoor 128 99 50
171 doors:trapdoor_open 136 106 59
172 doors:trapdoor_steel 199 199 199
173 doors:trapdoor_steel_open 206 206 206
174 doors:door_glass_a 245 245 245 64 16
175 doors:door_glass_b 245 245 245 64 16
176 doors:door_obsidian_glass_a 48 49 50 64 16
177 doors:door_obsidian_glass_b 48 49 50 64 16
178 doors:door_steel_a 203 203 203
179 doors:door_steel_b 203 203 203
180 doors:door_wood_a 89 68 37
181 doors:door_wood_b 89 68 37
182 doors:gate_acacia_wood_closed 150 61 39
183 doors:gate_acacia_wood_open 150 61 39
184 doors:gate_aspen_wood_closed 210 199 170
185 doors:gate_aspen_wood_open 210 199 170
186 doors:gate_junglewood_closed 56 39 14
187 doors:gate_junglewood_open 56 39 14
188 doors:gate_pine_wood_closed 221 185 130
189 doors:gate_pine_wood_open 221 185 130
190 doors:gate_wood_closed 131 102 57
191 doors:gate_wood_open 131 102 57
192 doors:trapdoor 130 100 51
193 doors:trapdoor_open 68 53 30
194 doors:trapdoor_steel 200 200 200
195 doors:trapdoor_steel_open 97 97 97
174196
175197 # farming
176 farming:cotton_1 88 116 39
177 farming:cotton_2 87 116 38
178 farming:cotton_3 97 120 41
179 farming:cotton_4 106 113 47
180 farming:cotton_5 114 104 53
181 farming:cotton_6 119 94 59
182 farming:cotton_7 92 69 37
183 farming:cotton_8 110 91 61
184 farming:desert_sand_soil 159 131 70
185 farming:desert_sand_soil_wet 119 98 52
186 farming:seed_cotton 90 85 57
187 farming:seed_wheat 175 159 93
188 farming:soil 95 64 39
189 farming:soil_wet 95 64 39
190 farming:straw 211 182 67
191 farming:wheat_1 107 174 32
192 farming:wheat_2 133 175 50
193 farming:wheat_3 162 182 82
194 farming:wheat_4 169 187 93
195 farming:wheat_5 169 178 94
196 farming:wheat_6 172 176 85
197 farming:wheat_7 192 181 81
198 farming:wheat_8 186 161 35
198 farming:cotton_1 89 117 39
199 farming:cotton_2 89 116 38
200 farming:cotton_3 99 121 41
201 farming:cotton_4 108 114 47
202 farming:cotton_5 116 105 53
203 farming:cotton_6 121 95 59
204 farming:cotton_7 94 70 37
205 farming:cotton_8 122 108 93
206 farming:desert_sand_soil 161 132 72
207 farming:desert_sand_soil_wet 120 99 53
208 farming:dry_soil 178 136 90
209 farming:dry_soil_wet 178 136 90
210 farming:seed_cotton 92 87 60
211 farming:seed_wheat 177 161 96
212 farming:soil 97 67 43
213 farming:soil_wet 97 67 43
214 farming:straw 212 184 68
215 farming:wheat_1 110 175 36
216 farming:wheat_2 136 177 53
217 farming:wheat_3 163 182 84
218 farming:wheat_4 170 188 95
219 farming:wheat_5 171 179 97
220 farming:wheat_6 173 177 87
221 farming:wheat_7 193 181 83
222 farming:wheat_8 187 162 40
199223
200224 # fire
201 fire:basic_flame 218 120 36
202 fire:permanent_flame 218 120 36
225 fire:basic_flame 223 136 44
226 fire:permanent_flame 223 136 44
203227
204228 # fireflies
205 fireflies:firefly_bottle 190 191 198
229 fireflies:firefly_bottle 191 194 202
206230
207231 # flowers
208 flowers:chrysanthemum_green 101 140 39
209 flowers:dandelion_white 178 176 140
210 flowers:dandelion_yellow 194 159 17
211 flowers:geranium 72 87 155
212 flowers:mushroom_brown 106 79 72
213 flowers:mushroom_red 192 85 85
214 flowers:rose 118 48 24
215 flowers:tulip 130 99 36
216 flowers:tulip_black 72 103 63
217 flowers:viola 106 60 159
218 flowers:waterlily 102 158 61
232 flowers:chrysanthemum_green 118 152 44
233 flowers:dandelion_white 199 191 176
234 flowers:dandelion_yellow 212 167 31
235 flowers:geranium 77 91 168
236 flowers:mushroom_brown 109 84 78
237 flowers:mushroom_red 195 102 102
238 flowers:rose 130 68 33
239 flowers:tulip 156 101 44
240 flowers:tulip_black 78 120 72
241 flowers:viola 115 69 184
242 flowers:waterlily 107 160 68
243 flowers:waterlily_waving 107 160 68
219244
220245 # stairs
221 stairs:slab_acacia_wood 146 60 37
222 stairs:slab_aspen_wood 209 198 169
223 stairs:slab_brick 117 71 69
224 stairs:slab_bronzeblock 185 110 15
225 stairs:slab_cobble 88 84 82
226 stairs:slab_copperblock 192 126 63
227 stairs:slab_desert_cobble 107 65 49
246 stairs:slab_acacia_wood 150 61 39
247 stairs:slab_aspen_wood 210 199 170
248 stairs:slab_brick 123 99 95
249 stairs:slab_bronzeblock 186 111 15
250 stairs:slab_cobble 89 86 84
251 stairs:slab_copperblock 193 126 65
252 stairs:slab_desert_cobble 110 67 50
228253 stairs:slab_desert_sandstone 195 152 92
229 stairs:slab_desert_sandstone_block 192 151 94
230 stairs:slab_desert_sandstone_brick 191 151 94
231 stairs:slab_desert_stone 129 79 60
232 stairs:slab_desert_stone_block 130 79 60
233 stairs:slab_desert_stonebrick 129 79 60
234 stairs:slab_goldblock 230 201 29
235 stairs:slab_ice 167 206 247
236 stairs:slab_junglewood 54 37 11
237 stairs:slab_mossycobble 86 90 68
238 stairs:slab_obsidian 19 21 24
239 stairs:slab_obsidian_block 20 22 25
240 stairs:slab_obsidianbrick 20 22 24
241 stairs:slab_pine_wood 221 184 128
242 stairs:slab_sandstone 197 193 143
243 stairs:slab_sandstone_block 195 190 141
244 stairs:slab_sandstonebrick 193 189 140
254 stairs:slab_desert_sandstone_block 193 152 94
255 stairs:slab_desert_sandstone_brick 191 151 95
256 stairs:slab_desert_stone 130 79 61
257 stairs:slab_desert_stone_block 131 80 61
258 stairs:slab_desert_stonebrick 131 80 61
259 stairs:slab_glass 247 247 247
260 stairs:slab_goldblock 231 203 35
261 stairs:slab_ice 168 206 247
262 stairs:slab_junglewood 56 39 14
263 stairs:slab_mossycobble 88 91 73
264 stairs:slab_obsidian 21 24 29
265 stairs:slab_obsidian_block 23 25 30
266 stairs:slab_obsidian_glass 20 23 27
267 stairs:slab_obsidianbrick 23 25 29
268 stairs:slab_pine_wood 221 185 130
269 stairs:slab_sandstone 198 193 143
270 stairs:slab_sandstone_block 195 191 142
271 stairs:slab_sandstonebrick 194 190 141
245272 stairs:slab_silver_sandstone 195 192 181
246 stairs:slab_silver_sandstone_block 192 190 179
247 stairs:slab_silver_sandstone_brick 190 188 178
248 stairs:slab_snowblock 224 225 238
249 stairs:slab_steelblock 194 194 194
273 stairs:slab_silver_sandstone_block 192 190 180
274 stairs:slab_silver_sandstone_brick 191 189 179
275 stairs:slab_snowblock 225 225 238
276 stairs:slab_steelblock 195 195 195
250277 stairs:slab_stone 97 94 93
251 stairs:slab_stone_block 99 96 95
252 stairs:slab_stonebrick 99 96 95
253 stairs:slab_straw 211 182 67
254 stairs:slab_tinblock 149 149 149
255 stairs:slab_wood 128 99 55
256 stairs:stair_acacia_wood 146 60 37
257 stairs:stair_aspen_wood 209 198 169
258 stairs:stair_brick 117 71 69
259 stairs:stair_bronzeblock 185 110 15
260 stairs:stair_cobble 88 84 82
261 stairs:stair_copperblock 192 126 63
262 stairs:stair_desert_cobble 107 65 49
278 stairs:slab_stone_block 100 97 96
279 stairs:slab_stonebrick 102 99 98
280 stairs:slab_straw 212 184 68
281 stairs:slab_tinblock 150 150 150
282 stairs:slab_wood 131 102 57
283 stairs:stair_acacia_wood 150 61 39
284 stairs:stair_aspen_wood 210 199 170
285 stairs:stair_brick 123 99 95
286 stairs:stair_bronzeblock 186 111 15
287 stairs:stair_cobble 89 86 84
288 stairs:stair_copperblock 193 126 65
289 stairs:stair_desert_cobble 110 67 50
263290 stairs:stair_desert_sandstone 195 152 92
264 stairs:stair_desert_sandstone_block 192 151 94
265 stairs:stair_desert_sandstone_brick 191 151 94
266 stairs:stair_desert_stone 129 79 60
267 stairs:stair_desert_stone_block 130 79 60
268 stairs:stair_desert_stonebrick 129 79 60
269 stairs:stair_goldblock 230 201 29
270 stairs:stair_ice 167 206 247
271 stairs:stair_inner_acacia_wood 146 60 37
272 stairs:stair_inner_aspen_wood 209 198 169
273 stairs:stair_inner_brick 117 71 69
274 stairs:stair_inner_bronzeblock 185 110 15
275 stairs:stair_inner_cobble 88 84 82
276 stairs:stair_inner_copperblock 192 126 63
277 stairs:stair_inner_desert_cobble 107 65 49
291 stairs:stair_desert_sandstone_block 193 152 94
292 stairs:stair_desert_sandstone_brick 191 151 95
293 stairs:stair_desert_stone 130 79 61
294 stairs:stair_desert_stone_block 131 80 61
295 stairs:stair_desert_stonebrick 131 80 61
296 stairs:stair_glass 249 249 249
297 stairs:stair_goldblock 231 203 35
298 stairs:stair_ice 168 206 247
299 stairs:stair_inner_acacia_wood 150 61 39
300 stairs:stair_inner_aspen_wood 210 199 170
301 stairs:stair_inner_brick 123 99 95
302 stairs:stair_inner_bronzeblock 186 111 15
303 stairs:stair_inner_cobble 89 86 84
304 stairs:stair_inner_copperblock 193 126 65
305 stairs:stair_inner_desert_cobble 110 67 50
278306 stairs:stair_inner_desert_sandstone 195 152 92
279 stairs:stair_inner_desert_sandstone_block 192 151 94
280 stairs:stair_inner_desert_sandstone_brick 191 151 94
281 stairs:stair_inner_desert_stone 129 79 60
282 stairs:stair_inner_desert_stone_block 130 79 60
283 stairs:stair_inner_desert_stonebrick 129 79 60
284 stairs:stair_inner_goldblock 230 201 29
285 stairs:stair_inner_ice 167 206 247
286 stairs:stair_inner_junglewood 54 37 11
287 stairs:stair_inner_mossycobble 86 90 68
288 stairs:stair_inner_obsidian 19 21 24
289 stairs:stair_inner_obsidian_block 20 22 25
290 stairs:stair_inner_obsidianbrick 20 22 24
291 stairs:stair_inner_pine_wood 221 184 128
292 stairs:stair_inner_sandstone 197 193 143
293 stairs:stair_inner_sandstone_block 195 190 141
294 stairs:stair_inner_sandstonebrick 193 189 140
307 stairs:stair_inner_desert_sandstone_block 193 152 94
308 stairs:stair_inner_desert_sandstone_brick 191 151 95
309 stairs:stair_inner_desert_stone 130 79 61
310 stairs:stair_inner_desert_stone_block 131 80 61
311 stairs:stair_inner_desert_stonebrick 131 80 61
312 stairs:stair_inner_glass 250 250 250
313 stairs:stair_inner_goldblock 231 203 35
314 stairs:stair_inner_ice 168 206 247
315 stairs:stair_inner_junglewood 56 39 14
316 stairs:stair_inner_mossycobble 88 91 73
317 stairs:stair_inner_obsidian 21 24 29
318 stairs:stair_inner_obsidian_block 23 25 30
319 stairs:stair_inner_obsidian_glass 20 22 27
320 stairs:stair_inner_obsidianbrick 23 25 29
321 stairs:stair_inner_pine_wood 221 185 130
322 stairs:stair_inner_sandstone 198 193 143
323 stairs:stair_inner_sandstone_block 195 191 142
324 stairs:stair_inner_sandstonebrick 194 190 141
295325 stairs:stair_inner_silver_sandstone 195 192 181
296 stairs:stair_inner_silver_sandstone_block 192 190 179
297 stairs:stair_inner_silver_sandstone_brick 190 188 178
298 stairs:stair_inner_snowblock 224 225 238
299 stairs:stair_inner_steelblock 194 194 194
326 stairs:stair_inner_silver_sandstone_block 192 190 180
327 stairs:stair_inner_silver_sandstone_brick 191 189 179
328 stairs:stair_inner_snowblock 225 225 238
329 stairs:stair_inner_steelblock 195 195 195
300330 stairs:stair_inner_stone 97 94 93
301 stairs:stair_inner_stone_block 99 96 95
302 stairs:stair_inner_stonebrick 99 96 95
303 stairs:stair_inner_straw 211 182 67
304 stairs:stair_inner_tinblock 149 149 149
305 stairs:stair_inner_wood 128 99 55
306 stairs:stair_junglewood 54 37 11
307 stairs:stair_mossycobble 86 90 68
308 stairs:stair_obsidian 19 21 24
309 stairs:stair_obsidian_block 20 22 25
310 stairs:stair_obsidianbrick 20 22 24
311 stairs:stair_outer_acacia_wood 146 60 37
312 stairs:stair_outer_aspen_wood 209 198 169
313 stairs:stair_outer_brick 117 71 69
314 stairs:stair_outer_bronzeblock 185 110 15
315 stairs:stair_outer_cobble 88 84 82
316 stairs:stair_outer_copperblock 192 126 63
317 stairs:stair_outer_desert_cobble 107 65 49
331 stairs:stair_inner_stone_block 100 97 96
332 stairs:stair_inner_stonebrick 102 99 98
333 stairs:stair_inner_straw 212 184 68
334 stairs:stair_inner_tinblock 150 150 150
335 stairs:stair_inner_wood 131 102 57
336 stairs:stair_junglewood 56 39 14
337 stairs:stair_mossycobble 88 91 73
338 stairs:stair_obsidian 21 24 29
339 stairs:stair_obsidian_block 23 25 30
340 stairs:stair_obsidian_glass 20 22 27
341 stairs:stair_obsidianbrick 23 25 29
342 stairs:stair_outer_acacia_wood 150 61 39
343 stairs:stair_outer_aspen_wood 210 199 170
344 stairs:stair_outer_brick 123 99 95
345 stairs:stair_outer_bronzeblock 186 111 15
346 stairs:stair_outer_cobble 89 86 84
347 stairs:stair_outer_copperblock 193 126 65
348 stairs:stair_outer_desert_cobble 110 67 50
318349 stairs:stair_outer_desert_sandstone 195 152 92
319 stairs:stair_outer_desert_sandstone_block 192 151 94
320 stairs:stair_outer_desert_sandstone_brick 191 151 94
321 stairs:stair_outer_desert_stone 129 79 60
322 stairs:stair_outer_desert_stone_block 130 79 60
323 stairs:stair_outer_desert_stonebrick 129 79 60
324 stairs:stair_outer_goldblock 230 201 29
325 stairs:stair_outer_ice 167 206 247
326 stairs:stair_outer_junglewood 54 37 11
327 stairs:stair_outer_mossycobble 86 90 68
328 stairs:stair_outer_obsidian 19 21 24
329 stairs:stair_outer_obsidian_block 20 22 25
330 stairs:stair_outer_obsidianbrick 20 22 24
331 stairs:stair_outer_pine_wood 221 184 128
332 stairs:stair_outer_sandstone 197 193 143
333 stairs:stair_outer_sandstone_block 195 190 141
334 stairs:stair_outer_sandstonebrick 193 189 140
350 stairs:stair_outer_desert_sandstone_block 193 152 94
351 stairs:stair_outer_desert_sandstone_brick 191 151 95
352 stairs:stair_outer_desert_stone 130 79 61
353 stairs:stair_outer_desert_stone_block 131 80 61
354 stairs:stair_outer_desert_stonebrick 131 80 61
355 stairs:stair_outer_glass 250 250 250
356 stairs:stair_outer_goldblock 231 203 35
357 stairs:stair_outer_ice 168 206 247
358 stairs:stair_outer_junglewood 56 39 14
359 stairs:stair_outer_mossycobble 88 91 73
360 stairs:stair_outer_obsidian 21 24 29
361 stairs:stair_outer_obsidian_block 23 25 30
362 stairs:stair_outer_obsidian_glass 20 22 27
363 stairs:stair_outer_obsidianbrick 23 25 29
364 stairs:stair_outer_pine_wood 221 185 130
365 stairs:stair_outer_sandstone 198 193 143
366 stairs:stair_outer_sandstone_block 195 191 142
367 stairs:stair_outer_sandstonebrick 194 190 141
335368 stairs:stair_outer_silver_sandstone 195 192 181
336 stairs:stair_outer_silver_sandstone_block 192 190 179
337 stairs:stair_outer_silver_sandstone_brick 190 188 178
338 stairs:stair_outer_snowblock 224 225 238
339 stairs:stair_outer_steelblock 194 194 194
369 stairs:stair_outer_silver_sandstone_block 192 190 180
370 stairs:stair_outer_silver_sandstone_brick 191 189 179
371 stairs:stair_outer_snowblock 225 225 238
372 stairs:stair_outer_steelblock 195 195 195
340373 stairs:stair_outer_stone 97 94 93
341 stairs:stair_outer_stone_block 99 96 95
342 stairs:stair_outer_stonebrick 99 96 95
343 stairs:stair_outer_straw 211 182 67
344 stairs:stair_outer_tinblock 149 149 149
345 stairs:stair_outer_wood 128 99 55
346 stairs:stair_pine_wood 221 184 128
347 stairs:stair_sandstone 197 193 143
348 stairs:stair_sandstone_block 195 190 141
349 stairs:stair_sandstonebrick 193 189 140
374 stairs:stair_outer_stone_block 100 97 96
375 stairs:stair_outer_stonebrick 102 99 98
376 stairs:stair_outer_straw 212 184 68
377 stairs:stair_outer_tinblock 150 150 150
378 stairs:stair_outer_wood 131 102 57
379 stairs:stair_pine_wood 221 185 130
380 stairs:stair_sandstone 198 193 143
381 stairs:stair_sandstone_block 195 191 142
382 stairs:stair_sandstonebrick 194 190 141
350383 stairs:stair_silver_sandstone 195 192 181
351 stairs:stair_silver_sandstone_block 192 190 179
352 stairs:stair_silver_sandstone_brick 190 188 178
353 stairs:stair_snowblock 224 225 238
354 stairs:stair_steelblock 194 194 194
384 stairs:stair_silver_sandstone_block 192 190 180
385 stairs:stair_silver_sandstone_brick 191 189 179
386 stairs:stair_snowblock 225 225 238
387 stairs:stair_steelblock 195 195 195
355388 stairs:stair_stone 97 94 93
356 stairs:stair_stone_block 99 96 95
357 stairs:stair_stonebrick 99 96 95
358 stairs:stair_straw 211 182 67
359 stairs:stair_tinblock 149 149 149
360 stairs:stair_wood 128 99 55
389 stairs:stair_stone_block 100 97 96
390 stairs:stair_stonebrick 102 99 98
391 stairs:stair_straw 212 184 68
392 stairs:stair_tinblock 150 150 150
393 stairs:stair_wood 131 102 57
361394
362395 # tnt
363 tnt:gunpowder 6 6 6
364 tnt:gunpowder_burning 112 103 2
365 tnt:tnt 181 0 0
366 tnt:tnt_burning 190 8 0
396 tnt:gunpowder 12 12 12
397 tnt:gunpowder_burning 156 143 7
398 tnt:tnt 196 0 0
399 tnt:tnt_burning 201 41 0
367400
368401 # vessels
369 vessels:drinking_glass 206 214 228
370 vessels:glass_bottle 188 190 201
371 vessels:shelf 128 99 55
372 vessels:steel_bottle 193 192 191
402 vessels:drinking_glass 207 214 228
403 vessels:glass_bottle 189 192 204
404 vessels:shelf 131 102 57
405 vessels:steel_bottle 194 193 193
373406
374407 # walls
375 walls:cobble 88 84 82
376 walls:desertcobble 107 65 49
377 walls:mossycobble 86 90 68
408 walls:cobble 89 86 84
409 walls:desertcobble 110 67 50
410 walls:mossycobble 88 91 73
378411
379412 # wool
380 wool:black 29 29 29
381 wool:blue 0 72 145
382 wool:brown 86 42 0
383 wool:cyan 0 130 139
384 wool:dark_green 32 102 0
385 wool:dark_grey 59 59 59
386 wool:green 92 216 28
387 wool:grey 131 131 131
388 wool:magenta 200 3 109
389 wool:orange 213 81 21
390 wool:pink 255 131 131
391 wool:red 168 17 17
392 wool:violet 92 2 169
413 wool:black 30 30 30
414 wool:blue 0 73 146
415 wool:brown 88 44 0
416 wool:cyan 0 132 140
417 wool:dark_green 33 103 0
418 wool:dark_grey 60 60 60
419 wool:green 93 218 28
420 wool:grey 133 133 133
421 wool:magenta 201 3 112
422 wool:orange 214 83 22
423 wool:pink 255 133 133
424 wool:red 170 18 18
425 wool:violet 93 5 169
393426 wool:white 220 220 220
394 wool:yellow 254 225 15
427 wool:yellow 254 226 16
395428
396429 # xpanes
397430 xpanes:bar 114 114 114 64 16
398431 xpanes:bar_flat 114 114 114 64 16
399 xpanes:obsidian_pane 16 16 17 64 16
400 xpanes:obsidian_pane_flat 16 16 17 64 16
401 xpanes:pane 192 192 227 64 16
402 xpanes:pane_flat 192 192 227 64 16
403
432 xpanes:door_steel_bar_a 133 133 133 64 16
433 xpanes:door_steel_bar_b 133 133 133 64 16
434 xpanes:obsidian_pane 16 17 18 64 16
435 xpanes:obsidian_pane_flat 16 17 18 64 16
436 xpanes:pane 249 249 249 64 16
437 xpanes:pane_flat 249 249 249 64 16
438 xpanes:trapdoor_steel_bar 127 127 127 64 16
439 xpanes:trapdoor_steel_bar_open 77 77 77 64 16
440
1313 std::ifstream ifs((mapdir + "/world.mt").c_str());
1414 if(!ifs.good())
1515 throw std::runtime_error("Failed to read world.mt");
16 std::string const connect_string = get_setting("pgsql_connection", ifs);
16 std::string connect_string = read_setting("pgsql_connection", ifs);
1717 ifs.close();
1818 db = PQconnectdb(connect_string.c_str());
1919
8585 void parseColorsFile(const std::string &fileName);
8686 void setBackend(std::string backend);
8787 void generate(const std::string &input, const std::string &output);
88 void printGeometry(const std::string &input);
8889 void setZoom(int zoom);
8990 void setScales(uint flags);
91 void setDontWriteEmpty(bool f);
9092
9193 private:
9294 void parseColorsStream(std::istream &in);
118120 bool m_drawScale;
119121 bool m_drawAlpha;
120122 bool m_shading;
123 bool m_dontWriteEmpty;
121124 std::string m_backend;
122125 int m_xBorder, m_yBorder;
123126
1919 BlockPos(int16_t x, int16_t y, int16_t z) : x(x), y(y), z(z) {}
2020 bool operator < (const BlockPos &p) const
2121 {
22 if (z > p.z) {
22 if (z > p.z)
2323 return true;
24 }
25 if (z < p.z) {
24 if (z < p.z)
2625 return false;
27 }
28 if (y > p.y) {
26 if (y > p.y)
2927 return true;
30 }
31 if (y < p.y) {
28 if (y < p.y)
3229 return false;
33 }
34 if (x > p.x) {
30 if (x > p.x)
3531 return true;
36 }
37 if (x < p.x) {
32 if (x < p.x)
3833 return false;
39 }
4034 return false;
4135 }
4236 };
99 {
1010 try {
1111 return read_setting(name, is);
12 } catch(std::runtime_error e) {
12 } catch(std::runtime_error &e) {
1313 return def;
1414 }
1515 }
2323 " --draworigin\n"
2424 " --drawalpha\n"
2525 " --noshading\n"
26 " --noemptyimage\n"
2627 " --min-y <y>\n"
2728 " --max-y <y>\n"
2829 " --backend <backend>\n"
2930 " --geometry x:y+w+h\n"
31 " --extent\n"
3032 " --zoom <zoomlevel>\n"
3133 " --colors <colors.txt>\n"
3234 " --scales [t][b][l][r]\n"
7981 {"noshading", no_argument, 0, 'H'},
8082 {"backend", required_argument, 0, 'd'},
8183 {"geometry", required_argument, 0, 'g'},
84 {"extent", no_argument, 0, 'E'},
8285 {"min-y", required_argument, 0, 'a'},
8386 {"max-y", required_argument, 0, 'c'},
8487 {"zoom", required_argument, 0, 'z'},
8588 {"colors", required_argument, 0, 'C'},
8689 {"scales", required_argument, 0, 'f'},
90 {"noemptyimage", no_argument, 0, 'n'},
8791 {0, 0, 0, 0}
8892 };
8993
9296 std::string colors = "";
9397
9498 TileGenerator generator;
95 int option_index = 0;
96 int c = 0;
99 bool onlyPrintExtent = false;
97100 while (1) {
98 c = getopt_long(argc, argv, "hi:o:", long_options, &option_index);
99 if (c == -1) {
100 if (input.empty() || output.empty()) {
101 usage();
102 return 0;
103 }
104 break;
105 }
101 int option_index;
102 int c = getopt_long(argc, argv, "hi:o:", long_options, &option_index);
103 if (c == -1)
104 break; // done
105
106106 switch (c) {
107107 case 'h':
108108 usage();
138138 case 'e':
139139 generator.setDrawAlpha(true);
140140 break;
141 case 'E':
142 onlyPrintExtent = true;
143 break;
141144 case 'H':
142145 generator.setShading(false);
143146 break;
145148 generator.setBackend(optarg);
146149 break;
147150 case 'a': {
148 std::istringstream iss;
149 iss.str(optarg);
151 std::istringstream iss(optarg);
150152 int miny;
151153 iss >> miny;
152154 generator.setMinY(miny);
153155 }
154156 break;
155157 case 'c': {
156 std::istringstream iss;
157 iss.str(optarg);
158 std::istringstream iss(optarg);
158159 int maxy;
159160 iss >> maxy;
160161 generator.setMaxY(maxy);
161162 }
162163 break;
163164 case 'g': {
164 std::istringstream geometry;
165 geometry.str(optarg);
165 std::istringstream geometry(optarg);
166166 int x, y, w, h;
167167 char c;
168168 geometry >> x >> c >> y >> w >> h;
187187 }
188188 break;
189189 case 'z': {
190 std::istringstream iss;
191 iss.str(optarg);
190 std::istringstream iss(optarg);
192191 int zoom;
193192 iss >> zoom;
194193 generator.setZoom(zoom);
197196 case 'C':
198197 colors = optarg;
199198 break;
199 case 'n':
200 generator.setDontWriteEmpty(true);
201 break;
200202 default:
201203 exit(1);
202204 }
203205 }
204 if(colors == "")
205 colors = search_colors(input);
206
207 if (input.empty() || (!onlyPrintExtent && output.empty())) {
208 usage();
209 return 0;
210 }
211
206212 try {
213
214 if (onlyPrintExtent) {
215 generator.printGeometry(input);
216 return 0;
217 }
218
219 if(colors == "")
220 colors = search_colors(input);
207221 generator.parseColorsFile(colors);
208222 generator.generate(input, output);
209 } catch(std::runtime_error e) {
223
224 } catch(std::runtime_error &e) {
210225 std::cerr << "Exception: " << e.what() << std::endl;
211226 return 1;
212227 }
1010 .B minetestmapper
1111 generates an overview image of a minetest map. This is a port of
1212 the original minetestmapper.py to C++, that is both faster and
13 provides more funtionality than the deprecated Python script.
13 provides more functionality than the deprecated Python script.
1414 .SH MANDATORY PARAMETERS
1515 .TP
1616 .BR \-i " " \fIworld_path\fR
5656 Don't draw shading on nodes
5757
5858 .TP
59 .BR \-\-noemptyimage
60 Don't output anything when the image would be empty.
61
62 .TP
5963 .BR \-\-min-y " " \fInumber\fR
6064 Don't draw nodes below this y value, e.g. "--min-y -25"
6165
7074 .TP
7175 .BR \-\-geometry " " \fIgeometry\fR
7276 Limit area to specific geometry (*x:y+w+h* where x and y specify the lower left corner), e.g. "--geometry -800:-800+1600+1600"
77
78 .TP
79 .BR \-\-extent " " \fIextent\fR
80 Dont render the image, just print the extent of the map that would be generated, in the same format as the geometry above.
7381
7482 .TP
7583 .BR \-\-zoom " " \fIfactor\fR
0 #!/bin/bash -e
1
2 #######
3 # this expects an env similar to what minetest's buildbot uses
4 # extradll_path will typically contain libgcc, libstdc++ and libpng
5 toolchain_file=
6 toolchain_file64=
7 libgd_dir=
8 libgd_dir64=
9 zlib_dir=
10 zlib_dir64=
11 sqlite_dir=
12 sqlite_dir64=
13 leveldb_dir=
14 leveldb_dir64=
15 extradll_path=
16 extradll_path64=
17 #######
18
19 [ -f ./CMakeLists.txt ] || exit 1
20
21 if [ "$1" == "32" ]; then
22 :
23 elif [ "$1" == "64" ]; then
24 toolchain_file=$toolchain_file64
25 libgd_dir=$libgd_dir64
26 zlib_dir=$zlib_dir64
27 sqlite_dir=$sqlite_dir64
28 leveldb_dir=$leveldb_dir64
29 extradll_path=$extradll_path64
30 else
31 echo "Usage: $0 <32 / 64>"
32 exit 1
33 fi
34
35 cmake . \
36 -DCMAKE_INSTALL_PREFIX=/tmp \
37 -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \
38 -DCMAKE_EXE_LINKER_FLAGS="-s" \
39 \
40 -DENABLE_LEVELDB=1 \
41 \
42 -DLIBGD_INCLUDE_DIR=$libgd_dir/include \
43 -DLIBGD_LIBRARY=$libgd_dir/lib/libgd.dll.a \
44 \
45 -DZLIB_INCLUDE_DIR=$zlib_dir/include \
46 -DZLIB_LIBRARY=$zlib_dir/lib/libz.dll.a \
47 \
48 -DSQLITE3_INCLUDE_DIR=$sqlite_dir/include \
49 -DSQLITE3_LIBRARY=$sqlite_dir/lib/libsqlite3.dll.a \
50 \
51 -DLEVELDB_INCLUDE_DIR=$leveldb_dir/include \
52 -DLEVELDB_LIBRARY=$leveldb_dir/lib/libleveldb.dll.a
53
54 make -j4
55
56 mkdir pack
57 cp -p \
58 AUTHORS colors.txt COPYING README.rst \
59 minetestmapper.exe \
60 $libgd_dir/bin/libgd-3.dll \
61 $zlib_dir/bin/zlib1.dll \
62 $sqlite_dir/bin/libsqlite3-0.dll \
63 $leveldb_dir/bin/libleveldb.dll \
64 $extradll_path/*.dll \
65 pack/
66 zipfile=minetestmapper-win$1.zip
67 (cd pack; zip -9r ../$zipfile *)
68
69 make clean
70 rm -r pack CMakeCache.txt
71
72 echo "Done."
00 #!/bin/bash -e
1
2 CXX=g++-7
3 [ $CC == "clang" ] && CXX=clang++-5.0
4 export CXX
5
6
71 mkdir -p travisbuild
82 cd travisbuild
93
10 cmake \
11 -DENABLE_LEVELDB=1 \
12 ..
4 cmake .. \
5 -DENABLE_LEVELDB=1
136
147 make -j2