First visual pass: replaces nothing, adds a decoration TileMapLayer above Terrain that paints ~8% of cells with random overlay sprites pulled from FG_Grasslands_Spring.png. Mix of 3 grass-sprout variants, 3 white-with- colored-center flowers, and 2 scattered-grass-dot patches. ~540 cells populated on the 80x80 map; deterministic seed so layout is stable. The bundle's design assumes flat-color terrain + overlay sprites for visual richness — so this is the cheapest possible win that uses the art we own. Terrain base, walls, trees, pawns, UI all unchanged. Implementation lives in world.gd as _build_decoration_tileset() + _paint_decorations(); the Decoration TileMapLayer is added to world.tscn at z_index=0 (siblings render in tree order so it draws between Terrain and Floor). Tileset is built at runtime pointing at res://art/tiles/FG_Grasslands_Spring.png, mirroring the existing _build_placeholder_tileset pattern. Verified MCP runtime: world feels like a meadow now, no perf hit. Headless boot logs '[world] decoration: painted 541 overlay cells'. License: ElvGames Humble bundle — commercial use OK with credit (see docs/art.md). Credit string compilation is still an open audit item. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
106 lines
4.1 KiB
Text
106 lines
4.1 KiB
Text
[gd_scene load_steps=19 format=3 uid="uid://rimlike_world"]
|
|
|
|
[ext_resource type="Script" path="res://scenes/world/world.gd" id="1_world"]
|
|
[ext_resource type="PackedScene" uid="uid://rimlike_camera_rig" path="res://scenes/world/camera_rig.tscn" id="2_camera"]
|
|
[ext_resource type="Script" path="res://scenes/world/pathfinder.gd" id="3_pathfinder"]
|
|
[ext_resource type="Script" path="res://scenes/world/selection.gd" id="4_selection"]
|
|
[ext_resource type="Script" path="res://scenes/ai/rest_provider.gd" id="5_rest_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/chop_provider.gd" id="6_chop_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/mine_provider.gd" id="7_mine_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/hauling_provider.gd" id="8_hauling_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/construction_provider.gd" id="9_construction_provider"]
|
|
[ext_resource type="Script" path="res://scenes/world/designation.gd" id="10_designation"]
|
|
[ext_resource type="Script" path="res://scenes/ai/crafting_provider.gd" id="11_crafting_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/plant_provider.gd" id="12_plant_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/eat_provider.gd" id="13_eat_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/sleep_provider.gd" id="14_sleep_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/doctor_provider.gd" id="15_doctor_provider"]
|
|
[ext_resource type="Script" path="res://scenes/ai/wolf_spawner.gd" id="16_wolf_spawner"]
|
|
[ext_resource type="PackedScene" uid="uid://rimlike_rain_overlay" path="res://scenes/world/rain_overlay.tscn" id="17_rain_overlay"]
|
|
[ext_resource type="Script" path="res://scenes/world/room_detector.gd" id="18_room_detector"]
|
|
|
|
[node name="World" type="Node2D"]
|
|
y_sort_enabled = true
|
|
script = ExtResource("1_world")
|
|
|
|
[node name="DarkOverlay" type="CanvasModulate" parent="."]
|
|
color = Color(1, 1, 1, 1)
|
|
|
|
[node name="Terrain" type="TileMapLayer" parent="."]
|
|
z_index = 0
|
|
|
|
[node name="Decoration" type="TileMapLayer" parent="."]
|
|
z_index = 0
|
|
|
|
[node name="Floor" type="TileMapLayer" parent="."]
|
|
z_index = 1
|
|
visible = false
|
|
|
|
[node name="Wall" type="TileMapLayer" parent="."]
|
|
z_index = 2
|
|
visible = false
|
|
|
|
[node name="Designation" type="TileMapLayer" parent="."]
|
|
z_index = 3
|
|
|
|
[node name="Roof" type="TileMapLayer" parent="."]
|
|
z_index = 4
|
|
visible = false
|
|
|
|
[node name="Fog" type="TileMapLayer" parent="."]
|
|
z_index = 5
|
|
visible = false
|
|
|
|
[node name="Pathfinder" type="Node" parent="."]
|
|
script = ExtResource("3_pathfinder")
|
|
|
|
[node name="Selection" type="Node" parent="."]
|
|
script = ExtResource("4_selection")
|
|
|
|
[node name="DesignationCtl" type="Node" parent="."]
|
|
script = ExtResource("10_designation")
|
|
|
|
[node name="RestProvider" type="Node" parent="."]
|
|
script = ExtResource("5_rest_provider")
|
|
rest_tile = Vector2i(50, 50)
|
|
|
|
[node name="ChopProvider" type="Node" parent="."]
|
|
script = ExtResource("6_chop_provider")
|
|
|
|
[node name="MineProvider" type="Node" parent="."]
|
|
script = ExtResource("7_mine_provider")
|
|
|
|
[node name="HaulingProvider" type="Node" parent="."]
|
|
script = ExtResource("8_hauling_provider")
|
|
|
|
[node name="ConstructionProvider" type="Node" parent="."]
|
|
script = ExtResource("9_construction_provider")
|
|
|
|
[node name="CraftingProvider" type="Node" parent="."]
|
|
script = ExtResource("11_crafting_provider")
|
|
|
|
[node name="PlantProvider" type="Node" parent="."]
|
|
script = ExtResource("12_plant_provider")
|
|
|
|
[node name="EatProvider" type="Node" parent="."]
|
|
script = ExtResource("13_eat_provider")
|
|
|
|
[node name="SleepProvider" type="Node" parent="."]
|
|
script = ExtResource("14_sleep_provider")
|
|
|
|
[node name="DoctorProvider" type="Node" parent="."]
|
|
script = ExtResource("15_doctor_provider")
|
|
|
|
[node name="WolfSpawner" type="Node" parent="."]
|
|
script = ExtResource("16_wolf_spawner")
|
|
|
|
[node name="RoomDetector" type="Node" parent="."]
|
|
script = ExtResource("18_room_detector")
|
|
|
|
[node name="WeatherLayer" type="CanvasLayer" parent="."]
|
|
layer = 5
|
|
|
|
[node name="RainOverlay" parent="WeatherLayer" instance=ExtResource("17_rain_overlay")]
|
|
|
|
[node name="CameraRig" parent="." instance=ExtResource("2_camera")]
|
|
position = Vector2(640, 640)
|