From 38dd81b05eaf34c7109b9f31dd019ebd1594d42a Mon Sep 17 00:00:00 2001 From: dP Date: Wed, 1 Mar 2023 23:26:03 +0300 Subject: [PATCH] Misc grfs --- grf/alpine/corner-groud-composition.txt | 153 ++++++++++++++ grf/trees/lang/english.lng | 3 + grf/trees/trees.nml | 21 ++ grf/trees/trees.png | Bin 0 -> 19692 bytes grf/trees/ttd-newgrf-dos.gpl | 260 ++++++++++++++++++++++++ grf/trollsig/lang/english.lng | 3 + grf/trollsig/trollsig.nml | 15 ++ grf/trollsig/trollsig.png | Bin 0 -> 3100 bytes 8 files changed, 455 insertions(+) create mode 100644 grf/alpine/corner-groud-composition.txt create mode 100644 grf/trees/lang/english.lng create mode 100644 grf/trees/trees.nml create mode 100644 grf/trees/trees.png create mode 100644 grf/trees/ttd-newgrf-dos.gpl create mode 100644 grf/trollsig/lang/english.lng create mode 100644 grf/trollsig/trollsig.nml create mode 100644 grf/trollsig/trollsig.png diff --git a/grf/alpine/corner-groud-composition.txt b/grf/alpine/corner-groud-composition.txt new file mode 100644 index 0000000000..4ed2873d74 --- /dev/null +++ b/grf/alpine/corner-groud-composition.txt @@ -0,0 +1,153 @@ +# Failed experiment of compossing ground sprites from 4 parts, turned out too fiddly and impractical as seemingly same parts may have different inclanation visually and so different graphics. + + +spriteset (meadow_groundsprites, "gfx/meadow_grid_temperate.png") { tmpl_groundsprites(1, 1) } + + +template tmpl_corner_ground(x, y, h, dy) { + [ x + 64 * 0, y, 32, h, -31, dy] + [ x + 64 * 1, y, 32, h, -31, dy] + [ x + 64 * 2, y, 32, h, -31, dy] + [ x + 64 * 3, y, 32, h, -31, dy] + [ x + 64 * 4, y, 32, h, -31, dy] + [ x + 64 * 5, y, 32, h, -31, dy] + [ x + 64 * 6, y, 32, h, -31, dy] + [ x + 64 * 7, y, 32, h, -31, dy] + [ x + 64 * 0 + 32, y , 32, h, 1, dy] + [ x + 64 * 1 + 32, y , 32, h, 1, dy] + [ x + 64 * 2 + 32, y , 32, h, 1, dy] + [ x + 64 * 3 + 32, y , 32, h, 1, dy] + [ x + 64 * 4 + 32, y , 32, h, 1, dy] + [ x + 64 * 5 + 32, y , 32, h, 1, dy] + [ x + 64 * 6 + 32, y , 32, h, 1, dy] + [ x + 64 * 7 + 32, y , 32, h, 1, dy] + [ x + 64 * 0, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 1, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 2, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 3, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 4, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 5, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 6, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 7, y + h, 32, h + 1, -31, h + dy] + [ x + 64 * 0 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 1 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 2 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 3 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 4 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 5 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 6 + 32, y + h , 32, h + 1, 1, h + dy] + [ x + 64 * 7 + 32, y + h , 32, h + 1, 1, h + dy] +} + +spriteset (meadow_transitions, "gfx/meadow_transitions.png") { + tmpl_corner_ground(0, 0, 15, -16) + tmpl_corner_ground(0, 64, 23, -16) + tmpl_corner_ground(0, 128, 7, 0) +} + +spritelayout meadow_groundsprites_default { + ground { + sprite: GROUNDSPRITE_NORMAL + slope_to_sprite_offset(tile_slope); + } + childsprite { + sprite: meadow_transitions(0 + // + ((tile_slope & bitmask(CORNER_N)) && !(tile_slope & bitmask(CORNER_W)) || (tile_slope & bitmask(IS_STEEP_SLOPE)) ? 32 : 0) + // + ((tile_slope & bitmask(CORNER_N)) && !(tile_slope & bitmask(CORNER_W)) || (tile_slope & bitmask(IS_STEEP_SLOPE)) ? 32 : 0) + + ((tile_slope & bitmask(CORNER_W)) && !(tile_slope & bitmask(CORNER_N)) ? 64 : 0) + // + (nearby_tile_object_type(1, -1) != test_tree || nearby_tile_object_type(1, 0) != test_tree || nearby_tile_object_type(0, -1) != test_tree) + // + (nearby_tile_object_type(0, -1) != test_tree) * 2 + // + (nearby_tile_object_type(-1, -1) != test_tree || nearby_tile_object_type(-1, 0) != test_tree || nearby_tile_object_type(0, -1) != test_tree) * 4 + ); + //yoffset: (tile_slope & bitmask(CORNER_N) ? 0 : 8) + (tile_slope == SLOPE_STEEP_N ? 0 : 8); + yoffset: 0; + } + childsprite { + sprite: meadow_transitions(8 + + ((tile_slope & bitmask(CORNER_N)) && !(tile_slope & bitmask(CORNER_E)) || (tile_slope & bitmask(IS_STEEP_SLOPE)) ? 32 : 0) + + ((tile_slope & bitmask(CORNER_E)) && !(tile_slope & bitmask(CORNER_N)) ? 64 : 0) + // + (nearby_tile_object_type(-1, 1) != test_tree || nearby_tile_object_type(0, 1) != test_tree || nearby_tile_object_type(-1, 0) != test_tree) + // + (nearby_tile_object_type(-1, 0) != test_tree) * 2 + // + (nearby_tile_object_type(-1, -1) != test_tree || nearby_tile_object_type(0, -1) != test_tree || nearby_tile_object_type(-1, 0) != test_tree) * 4 + ); + yoffset: (tile_slope & bitmask(CORNER_N) ? 0 : 8) + (tile_slope == SLOPE_STEEP_N ? 0 : 8); + // yoffset: 8 * (tile_slope & bitmask(CORNER_N) ? 1 : 0); + // yoffset: -8 * ((tile_slope & bitmask(CORNER_N) ? 1 : 0) + (tile_slope == SLOPE_STEEP_N ? 1 : 0)); + } + childsprite { + sprite: meadow_transitions(16 + // + (nearby_tile_object_type(1, -1) != test_tree || nearby_tile_object_type(0, -1) != test_tree || nearby_tile_object_type(1, 0) != test_tree) + // + (nearby_tile_object_type(1, 0) != test_tree) * 2 + // + (nearby_tile_object_type(1, 1) != test_tree || nearby_tile_object_type(0, 1) != test_tree || nearby_tile_object_type(1, 0) != test_tree) * 4 + ); + yoffset: 16; + } + childsprite { + sprite: meadow_transitions(24 + // + (nearby_tile_object_type(-1, 1) != test_tree || nearby_tile_object_type(-1, 0) != test_tree || nearby_tile_object_type(0, 1) != test_tree) + // + (nearby_tile_object_type(0, 1) != test_tree) * 2 + // + (nearby_tile_object_type(1, 1) != test_tree || nearby_tile_object_type(1, 0) != test_tree || nearby_tile_object_type(0, 1) != test_tree) * 4 + ); + yoffset: 16; + } +} + +spritelayout meadow_groundsprites_purchase { + ground { + sprite: meadow_groundsprites; + } +} + + +switch (FEAT_OBJECTS, SELF, switch_meadow_groundsprites_default, [ + STORE_TEMP(slope_to_sprite_offset(tile_slope), 0) + ]) { + meadow_groundsprites_default; +} + + +item (FEAT_OBJECTS, test_tree) { + property { + class: "FLMA"; + classname: string(STR_FLMA); + name: string(STR_TEST_OBJECT); + climates_available: ALL_CLIMATES; + end_of_life_date: 0xFFFFFFFF; + object_flags:bitmask(OBJ_FLAG_ALLOW_BRIDGE, OBJ_FLAG_ANYTHING_REMOVE, OBJ_FLAG_NO_FOUNDATIONS); + size: [1,1]; + } + graphics { + default: meadow_groundsprites_default; + purchase: meadow_groundsprites_purchase; + tile_check: CB_RESULT_LOCATION_ALLOW; + } +} + + + +# Generate meadow transition tiles +im = Image.open(os.path.join(SOURCE_DIR, "grass_grid_temperate.gimp.png")) +din = np.array(im) + +# dout = np.zeros((64 * 8, 31 + 47 + 15), dtype=np.uint8) +# dout = np.zeros((31 + 47 + 15, 64 * 8), dtype=np.uint8) +dout = np.zeros((64 * 3, 64 * 8), dtype=np.uint8) +for j, (h, ox) in enumerate(((31, 1), (47, 1197), (15, 1277))): + hh = (h - 1) / 2. + for i in range (8): + ut, uc, ub = i & 1, (i & 2) / 2, (i & 4) / 4 + for y in range(0, h): + for x in range(0, 64): + c = din[y + 1, x + ox] + if not c: continue + dx, dy = abs(31.5 - x) / 31.5, abs(hh - y) / hh + a = abs(4 * math.atan2(dy, dx) / math.pi - 1.) + f = (uc * (1. - a) + a * (ut if dy < dx else ub)) * (dx + dy) + f = min(1, 1 - f) + bc = spectra.rgb(f, 1, 0) + c = colors[c][1].blend(bc, ratio=0.2 + 0.5 * f) + # bc = spectra.rgb(0.7 + 0.3 * f, 1, 0) + # c = colors[c][1].blend(bc, ratio=0.2 + 0.1 * f) + dout[y + 64 * j, x + 64 * i] = find_best_color(c) +im2 = Image.fromarray(dout) +im2.putpalette(im.getpalette()) +im2.save(os.path.join(DEST_DIR, "meadow_transitions.png")) diff --git a/grf/trees/lang/english.lng b/grf/trees/lang/english.lng new file mode 100644 index 0000000000..ecc908f309 --- /dev/null +++ b/grf/trees/lang/english.lng @@ -0,0 +1,3 @@ +##grflangid 0x01 +STR_GRF_NAME :CityMania Trees +STR_GRF_DESCRIPTION :In dire need of a better tree sprites diff --git a/grf/trees/trees.nml b/grf/trees/trees.nml new file mode 100644 index 0000000000..5c2307698a --- /dev/null +++ b/grf/trees/trees.nml @@ -0,0 +1,21 @@ +grf { + grfid: "CMTR"; + name: string(STR_GRF_NAME); + desc: string(STR_GRF_DESCRIPTION); + version: 1; + min_compatible_version: 1; +} + +template tmpl_tree_wide(x, y) { + [ 0 + x, y, 45, 80, -24, -73] + [ 50 + x, y, 45, 80, -24, -73] + [100 + x, y, 45, 80, -24, -73] + [150 + x, y, 45, 80, -24, -73] + [200 + x, y, 45, 80, -24, -73] + [250 + x, y, 45, 80, -24, -73] + [300 + x, y, 45, 80, -24, -73] +} + +// base_graphics spr1688(1688, "trees.png") { tmpl_tree_wide(0, 0) } +replace (1688, "trees.png") { tmpl_tree_wide(0, 0) } +replace (1716, "trees.png") { tmpl_tree_wide(0, 0) } diff --git a/grf/trees/trees.png b/grf/trees/trees.png new file mode 100644 index 0000000000000000000000000000000000000000..1eebad8fa40cd85e9b3738f3758e91575ae9328f GIT binary patch literal 19692 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 rtmXPq%bbP0l+XkK{6oo% literal 0 HcmV?d00001 diff --git a/grf/trees/ttd-newgrf-dos.gpl b/grf/trees/ttd-newgrf-dos.gpl new file mode 100644 index 0000000000..3e52d9cf4d --- /dev/null +++ b/grf/trees/ttd-newgrf-dos.gpl @@ -0,0 +1,260 @@ +GIMP Palette +Name: ttd-newgrf-dos +Columns: 16 +# +0 0 255 Index 0 +16 16 16 Index 1 +32 32 32 Index 2 +48 48 48 Index 3 +64 64 64 Index 4 +80 80 80 Index 5 +100 100 100 Index 6 +116 116 116 Index 7 +132 132 132 Index 8 +148 148 148 Index 9 +168 168 168 Index 10 +184 184 184 Index 11 +200 200 200 Index 12 +216 216 216 Index 13 +232 232 232 Index 14 +252 252 252 Index 15 +52 60 72 Index 16 +68 76 92 Index 17 +88 96 112 Index 18 +108 116 132 Index 19 +132 140 152 Index 20 +156 160 172 Index 21 +176 184 196 Index 22 +204 208 220 Index 23 +48 44 4 Index 24 +64 60 12 Index 25 +80 76 20 Index 26 +96 92 28 Index 27 +120 120 64 Index 28 +148 148 100 Index 29 +176 176 132 Index 30 +204 204 168 Index 31 +72 44 4 Index 32 +88 60 20 Index 33 +104 80 44 Index 34 +124 104 72 Index 35 +152 132 92 Index 36 +184 160 120 Index 37 +212 188 148 Index 38 +244 220 176 Index 39 +64 0 4 Index 40 +88 4 16 Index 41 +112 16 32 Index 42 +136 32 52 Index 43 +160 56 76 Index 44 +188 84 108 Index 45 +204 104 124 Index 46 +220 132 144 Index 47 +236 156 164 Index 48 +252 188 192 Index 49 +252 208 0 Index 50 +252 232 60 Index 51 +252 252 128 Index 52 +76 40 0 Index 53 +96 60 8 Index 54 +116 88 28 Index 55 +136 116 56 Index 56 +156 136 80 Index 57 +176 156 108 Index 58 +196 180 136 Index 59 +68 24 0 Index 60 +96 44 4 Index 61 +128 68 8 Index 62 +156 96 16 Index 63 +184 120 24 Index 64 +212 156 32 Index 65 +232 184 16 Index 66 +252 212 0 Index 67 +252 248 128 Index 68 +252 252 192 Index 69 +32 4 0 Index 70 +64 20 8 Index 71 +84 28 16 Index 72 +108 44 28 Index 73 +128 56 40 Index 74 +148 72 56 Index 75 +168 92 76 Index 76 +184 108 88 Index 77 +196 128 108 Index 78 +212 148 128 Index 79 +8 52 0 Index 80 +16 64 0 Index 81 +32 80 4 Index 82 +48 96 4 Index 83 +64 112 12 Index 84 +84 132 20 Index 85 +104 148 28 Index 86 +128 168 44 Index 87 +28 52 24 Index 88 +44 68 32 Index 89 +60 88 48 Index 90 +80 104 60 Index 91 +104 124 76 Index 92 +128 148 92 Index 93 +152 176 108 Index 94 +180 204 124 Index 95 +16 52 24 Index 96 +32 72 44 Index 97 +56 96 72 Index 98 +76 116 88 Index 99 +96 136 108 Index 100 +120 164 136 Index 101 +152 192 168 Index 102 +184 220 200 Index 103 +32 24 0 Index 104 +56 28 0 Index 105 +72 40 4 Index 106 +88 52 12 Index 107 +104 64 24 Index 108 +124 84 44 Index 109 +140 108 64 Index 110 +160 128 88 Index 111 +76 40 16 Index 112 +96 52 24 Index 113 +116 68 40 Index 114 +136 84 56 Index 115 +164 96 64 Index 116 +184 112 80 Index 117 +204 128 96 Index 118 +212 148 112 Index 119 +224 168 128 Index 120 +236 188 148 Index 121 +80 28 4 Index 122 +100 40 20 Index 123 +120 56 40 Index 124 +140 76 64 Index 125 +160 100 96 Index 126 +184 136 136 Index 127 +36 40 68 Index 128 +48 52 84 Index 129 +64 64 100 Index 130 +80 80 116 Index 131 +100 100 136 Index 132 +132 132 164 Index 133 +172 172 192 Index 134 +212 212 224 Index 135 +40 20 112 Index 136 +64 44 144 Index 137 +88 64 172 Index 138 +104 76 196 Index 139 +120 88 224 Index 140 +140 104 252 Index 141 +160 136 252 Index 142 +188 168 252 Index 143 +0 24 108 Index 144 +0 36 132 Index 145 +0 52 160 Index 146 +0 72 184 Index 147 +0 96 212 Index 148 +24 120 220 Index 149 +56 144 232 Index 150 +88 168 240 Index 151 +128 196 252 Index 152 +188 224 252 Index 153 +16 64 96 Index 154 +24 80 108 Index 155 +40 96 120 Index 156 +52 112 132 Index 157 +80 140 160 Index 158 +116 172 192 Index 159 +156 204 220 Index 160 +204 240 252 Index 161 +172 52 52 Index 162 +212 52 52 Index 163 +252 52 52 Index 164 +252 100 88 Index 165 +252 144 124 Index 166 +252 184 160 Index 167 +252 216 200 Index 168 +252 244 236 Index 169 +72 20 112 Index 170 +92 44 140 Index 171 +112 68 168 Index 172 +140 100 196 Index 173 +168 136 224 Index 174 +200 176 248 Index 175 +208 184 255 Index 176 +232 208 252 Index 177 +60 0 0 Index 178 +92 0 0 Index 179 +128 0 0 Index 180 +160 0 0 Index 181 +196 0 0 Index 182 +224 0 0 Index 183 +252 0 0 Index 184 +252 80 0 Index 185 +252 108 0 Index 186 +252 136 0 Index 187 +252 164 0 Index 188 +252 192 0 Index 189 +252 220 0 Index 190 +252 252 0 Index 191 +204 136 8 Index 192 +228 144 4 Index 193 +252 156 0 Index 194 +252 176 48 Index 195 +252 196 100 Index 196 +252 216 152 Index 197 +8 24 88 Index 198 +12 36 104 Index 199 +20 52 124 Index 200 +28 68 140 Index 201 +40 92 164 Index 202 +56 120 188 Index 203 +72 152 216 Index 204 +100 172 224 Index 205 +92 156 52 Index 206 +108 176 64 Index 207 +124 200 76 Index 208 +144 224 92 Index 209 +224 244 252 Index 210 +200 236 248 Index 211 +180 220 236 Index 212 +132 188 216 Index 213 +88 152 172 Index 214 +244 0 244 Index 215 +245 0 245 Index 216 +246 0 246 Index 217 +247 0 247 Index 218 +248 0 248 Index 219 +249 0 249 Index 220 +250 0 250 Index 221 +251 0 251 Index 222 +252 0 252 Index 223 +253 0 253 Index 224 +254 0 254 Index 225 +255 0 255 Index 226 +76 24 8 Index 227 +108 44 24 Index 228 +144 72 52 Index 229 +176 108 84 Index 230 +210 146 126 Index 231 +252 60 0 Index 232 +252 84 0 Index 233 +252 104 0 Index 234 +252 124 0 Index 235 +252 148 0 Index 236 +252 172 0 Index 237 +252 196 0 Index 238 +64 0 0 Index 239 +255 0 0 Index 240 +48 48 0 Index 241 +64 64 0 Index 242 +80 80 0 Index 243 +255 255 0 Index 244 +32 68 112 Index 245 +36 72 116 Index 246 +40 76 120 Index 247 +44 80 124 Index 248 +48 84 128 Index 249 +72 100 144 Index 250 +100 132 168 Index 251 +216 244 252 Index 252 +96 128 164 Index 253 +68 96 140 Index 254 +255 255 255 Index 255 diff --git a/grf/trollsig/lang/english.lng b/grf/trollsig/lang/english.lng new file mode 100644 index 0000000000..a69aad5943 --- /dev/null +++ b/grf/trollsig/lang/english.lng @@ -0,0 +1,3 @@ +##grflangid 0x01 +STR_GRF_NAME :Trollface signals +STR_GRF_DESCRIPTION :More accurate graphics for signals diff --git a/grf/trollsig/trollsig.nml b/grf/trollsig/trollsig.nml new file mode 100644 index 0000000000..f295b94363 --- /dev/null +++ b/grf/trollsig/trollsig.nml @@ -0,0 +1,15 @@ +grf { + grfid: "CMTS"; + name: string(STR_GRF_NAME); + desc: string(STR_GRF_DESCRIPTION); + version: 1; + min_compatible_version: 1; +} + +// 5212 +// 5227 + +replacenew(PRE_SIGNAL_SEMAPHORE_PBS, "trollsig.png", 124) { [ 16, 0, 16, 14, 0, -14 ] } +replacenew(PRE_SIGNAL_SEMAPHORE_PBS, "trollsig.png", 141) { [ 0, 0, 16, 14, 0, -14 ] } +replacenew(PRE_SIGNAL_SEMAPHORE_PBS, "trollsig.png", 188) { [ 0, 0, 16, 14, 0, -14 ] } +replacenew(PRE_SIGNAL_SEMAPHORE_PBS, "trollsig.png", 204) { [ 16, 0, 16, 14, 0, -14 ] } diff --git a/grf/trollsig/trollsig.png b/grf/trollsig/trollsig.png new file mode 100644 index 0000000000000000000000000000000000000000..7eb09dc0f829f842b830430c20593961ecd17711 GIT binary patch literal 3100 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 a+j`4#xi*%lr!X)uFnGH9xvX