Asset Generation: Campfire, Tent, Sleeping Bag, UI Elements (Health, Inventory, Dialog). Cleaned GrassScene.
This commit is contained in:
65
scripts/generate_defold_tilemap.py
Normal file
65
scripts/generate_defold_tilemap.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import random
|
||||
import math
|
||||
|
||||
def generate_defold_map():
|
||||
width = 30
|
||||
height = 20
|
||||
|
||||
# Defold/Tileset Indices (0-based)
|
||||
# 0: Grass
|
||||
# 1: Water
|
||||
# 2: Tall Grass
|
||||
# 3: Dense Grass
|
||||
|
||||
cells = []
|
||||
|
||||
for x in range(width):
|
||||
# River logic: Sine wave center
|
||||
# y goes from 0 (bottom) to height (top) in Defold usually?
|
||||
# Actually Defold coords: (0,0) is bottom-left usually, but in Tilemap editor (0,0) is often bottom-left too.
|
||||
# Let's assume standard grid.
|
||||
|
||||
river_center = 10 + int(3 * math.sin(x * 0.2))
|
||||
|
||||
for y in range(height):
|
||||
tile_id = 0 # Default Grass
|
||||
|
||||
# River check
|
||||
if y == river_center or y == river_center + 1:
|
||||
tile_id = 1 # Water
|
||||
else:
|
||||
# Random foliage on grass
|
||||
if random.random() < 0.10:
|
||||
tile_id = random.choice([2, 3])
|
||||
|
||||
# Append cell string
|
||||
# Defold tilemap cell format
|
||||
cell_str = f""" cell {{
|
||||
x: {x}
|
||||
y: {y}
|
||||
tile: {tile_id}
|
||||
h_flip: 0
|
||||
v_flip: 0
|
||||
}}"""
|
||||
cells.append(cell_str)
|
||||
|
||||
# Full file content
|
||||
content = f"""tile_set: "/main/ground.tilesource"
|
||||
layers {{
|
||||
id: "ground"
|
||||
z: 0.0
|
||||
is_visible: 1
|
||||
{chr(10).join(cells)}
|
||||
}}
|
||||
material: "/builtins/materials/tile_map.material"
|
||||
blend_mode: BLEND_MODE_ALPHA
|
||||
"""
|
||||
|
||||
output_path = 'main/ground.tilemap'
|
||||
with open(output_path, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
print(f"Generated Defold tilemap at {output_path}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
generate_defold_map()
|
||||
Reference in New Issue
Block a user