add URL params read in function to take in missions and set the missions in Godot

pull/18/head
Wade 2025-05-03 15:40:46 +07:00
parent 6055d88d5e
commit cf872e8fd8
86 changed files with 247 additions and 160 deletions

@ -0,0 +1,69 @@
/**************************************************************************/
/* godot.audio.position.worklet.js */
/**************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* https://godotengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
const POST_THRESHOLD_S = 0.1;
class GodotPositionReportingProcessor extends AudioWorkletProcessor {
constructor(...args) {
super(...args);
this.lastPostTime = currentTime;
this.position = 0;
this.ended = false;
this.port.onmessage = (event) => {
if (event?.data?.type === 'ended') {
this.ended = true;
}
};
}
process(inputs, _outputs, _parameters) {
if (this.ended) {
return false;
}
if (inputs.length > 0) {
const input = inputs[0];
if (input.length > 0) {
this.position += input[0].length;
}
}
// Posting messages is expensive. Let's limit the number of posts.
if (currentTime - this.lastPostTime > POST_THRESHOLD_S) {
this.lastPostTime = currentTime;
this.port.postMessage({ type: 'position', data: this.position });
}
return true;
}
}
registerProcessor('godot-position-reporting-processor', GodotPositionReportingProcessor);

@ -1,62 +1,3 @@
[gd_resource type="Resource" script_class="MissionConfig" load_steps=2 format=3]
[ext_resource type="Script" path="res://scripts/mission/mission_config.gd" id="1_config"]
[gd_resource type="Resource" format=3 uid="uid://bkkc6ej2nx3r6"]
[resource]
script = ExtResource("1_config")
starting_structures = ["res://structures/road-straight.tres", "res://structures/building-small-a.tres"]
initial_structures = [
{
"structure_path": "res://structures/road-straight.tres",
"position": Vector3(0, 0, 0),
"rotation": 0
},
{
"structure_path": "res://structures/road-straight.tres",
"position": Vector3(1, 0, 0),
"rotation": 90
}
]
missions = [
{
"id": "custom_mission_1",
"title": "Road Network",
"description": "Build a basic road network for your city",
"objectives": [
{
"type": 1,
"target_count": 4,
"structure_path": "res://structures/road-straight.tres",
"description": "Build 4 straight roads"
}
],
"rewards": {
"cash": 200,
"experience": 25
},
"unlocked_items": [
"res://structures/road-corner.tres"
]
},
{
"id": "custom_mission_2",
"title": "First Houses",
"description": "Start building houses along your roads",
"objectives": [
{
"type": 1,
"target_count": 2,
"structure_path": "res://structures/building-small-a.tres",
"description": "Build 2 Type A houses"
}
],
"rewards": {
"cash": 300,
"experience": 50
},
"unlocked_items": [
"res://structures/building-small-b.tres",
"res://structures/building-small-c.tres"
]
}
]

@ -23,6 +23,7 @@ allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]

@ -62,3 +62,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/building-small-a.glb"])
starting_structures = Array[String]([])

@ -62,3 +62,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/road-corner.glb"])
starting_structures = Array[String]([])

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=4 format=3 uid="uid://cjr36hqnmyn0x"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_dhx01"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="2_b4llw"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_dhx01"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="2_b4llw"]
[sub_resource type="Resource" id="Resource_c06be"]
script = ExtResource("1_dhx01")
@ -60,3 +60,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/store.glb"])
starting_structures = Array[String]([])

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=9 format=3 uid="uid://bh148683scgge"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_objective"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="2_mission"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_objective"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="2_mission"]
[ext_resource type="Resource" uid="uid://dykbopx8n3c3v" path="res://resources/patterns/road_square.tres" id="3_pattern"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="4_building_a"]
[ext_resource type="Resource" uid="uid://bh65eqgid4kxy" path="res://structures/building-small-c.tres" id="5_building_c"]
@ -83,3 +83,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://structures/building-small-a.tres", "res://structures/building-small-b.tres", "res://structures/building-small-c.tres", "res://structures/building-garage.tres"])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://442cwthak2pa"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_tcpuf"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_tcpuf"]
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="2_d7dn8"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_viy3t"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_viy3t"]
[sub_resource type="Resource" id="Resource_1rxby"]
script = ExtResource("1_tcpuf")
@ -36,3 +36,4 @@ num_of_user_inputs = 1
input_labels = Array[String]([])
companion_dialog = {}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://bom5bu47dy5kp"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_pfd6v"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_pfd6v"]
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="2_ktjdq"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_w1cq1"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_w1cq1"]
[sub_resource type="Resource" id="Resource_a42kn"]
script = ExtResource("1_pfd6v")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=4 format=3 uid="uid://csrqvfwp63ygr"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_a8iy6"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="2_5q4dp"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_a8iy6"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="2_5q4dp"]
[sub_resource type="Resource" id="Resource_m1jev"]
script = ExtResource("1_a8iy6")
@ -45,3 +45,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/road-straight-lightposts.glb"])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://qwiwim2pg88f"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_lsd8i"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_lsd8i"]
[ext_resource type="Resource" uid="uid://mxrnqinnsqnt" path="res://structures/road-straight-lightposts.tres" id="2_v2q1j"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_gtu3s"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_gtu3s"]
[sub_resource type="Resource" id="Resource_mhw3l"]
script = ExtResource("1_lsd8i")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/road-intersection.glb"])
starting_structures = Array[String]([])

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://cua0khnbyusip"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_objective"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="2_mission"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_objective"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="2_mission"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="3_building_a"]
[sub_resource type="Resource" id="Resource_objective1"]

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://cfgw8dblm55c5"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_fvshb"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_fvshb"]
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="2_evy85"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_mtrpd"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_mtrpd"]
[sub_resource type="Resource" id="Resource_pj2vg"]
script = ExtResource("1_fvshb")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://ba3ndftq7dht7"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_miqck"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_miqck"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="2_r3vpw"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_mdu3m"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_mdu3m"]
[sub_resource type="Resource" id="Resource_utswr"]
script = ExtResource("1_miqck")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/power_plant.glb"])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://dgimr2v12rjqu"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_8rvyb"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_8rvyb"]
[ext_resource type="Resource" uid="uid://c4qbn3d85prxx" path="res://structures/power-plant.tres" id="2_0kbkj"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_8cjg3"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_8cjg3"]
[sub_resource type="Resource" id="Resource_fmshv"]
script = ExtResource("1_8rvyb")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/grass-trees-tall.glb", "res://models/grass.glb"])
starting_structures = Array[String]([])

@ -1,9 +1,9 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=7 format=3 uid="uid://dm2o4dq2oml53"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_x4c68"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_x4c68"]
[ext_resource type="Resource" uid="uid://tm532uesguhk" path="res://structures/grass.tres" id="2_ckbw6"]
[ext_resource type="Resource" uid="uid://y6jafhfnhbrp" path="res://structures/grass-trees-tall.tres" id="3_i0070"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_mjpfs"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_mjpfs"]
[sub_resource type="Resource" id="Resource_mldwf"]
script = ExtResource("1_x4c68")
@ -58,3 +58,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://btwrfq37q8vey"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_ajvs5"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_ajvs5"]
[ext_resource type="Resource" uid="uid://d2jplegnkl6u2" path="res://structures/road-corner.tres" id="2_exdai"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_kexcf"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_kexcf"]
[sub_resource type="Resource" id="Resource_qykcx"]
script = ExtResource("1_ajvs5")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://cf7gpb4j7gq1g"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_8k2sf"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_8k2sf"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="2_4a8uo"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_aihyv"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_aihyv"]
[sub_resource type="Resource" id="Resource_fmsjh"]
script = ExtResource("1_8k2sf")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://ddmxjjyxgxyxo"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_1hl01"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_1hl01"]
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="2_i3hgc"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_6fq1p"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_6fq1p"]
[sub_resource type="Resource" id="Resource_h6f0e"]
script = ExtResource("1_1hl01")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://doxd30r8qbgdq"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_kdkdo"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_kdkdo"]
[ext_resource type="Resource" uid="uid://mxrnqinnsqnt" path="res://structures/road-straight-lightposts.tres" id="2_0dtbf"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_uodr7"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_uodr7"]
[sub_resource type="Resource" id="Resource_uq2hw"]
script = ExtResource("1_kdkdo")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=4 format=3 uid="uid://duaxn13myfx22"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_40kcw"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="2_x8j3r"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_40kcw"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="2_x8j3r"]
[sub_resource type="Resource" id="Resource_qlixo"]
script = ExtResource("1_40kcw")
@ -45,3 +45,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://fuxb3pfbbwjm"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_75i2t"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_75i2t"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="2_lh8y5"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="4_30pdy"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="4_30pdy"]
[sub_resource type="Resource" id="Resource_qb5w1"]
script = ExtResource("1_75i2t")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://bsic030rpgh08"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_75i2t"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_75i2t"]
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="2_3t66o"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_30pdy"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_30pdy"]
[sub_resource type="Resource" id="Resource_vcbou"]
script = ExtResource("1_75i2t")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://structures/store.tres"])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://byd5jxiutxpky"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_3s3sm"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_3s3sm"]
[ext_resource type="Resource" uid="uid://c4qbn3d85prxx" path="res://structures/power-plant.tres" id="2_5l1dw"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_w8jc7"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_w8jc7"]
[sub_resource type="Resource" id="Resource_d7jw4"]
script = ExtResource("1_3s3sm")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://daug1o7kppqit"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_oa16m"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_oa16m"]
[ext_resource type="Resource" uid="uid://y6jafhfnhbrp" path="res://structures/grass-trees-tall.tres" id="2_x4xh6"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_3tpnw"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_3tpnw"]
[sub_resource type="Resource" id="Resource_8dxyl"]
script = ExtResource("1_oa16m")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://cp7tcpktwlrkt"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_fywct"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_fywct"]
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="2_a71iq"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_38y5t"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_38y5t"]
[sub_resource type="Resource" id="Resource_wq8mf"]
script = ExtResource("1_fywct")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://c3q1afcvwi4rk"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_0s0wv"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_0s0wv"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="2_6f04c"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_7jlc0"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_7jlc0"]
[sub_resource type="Resource" id="Resource_3fy3g"]
script = ExtResource("1_0s0wv")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://ct1k7n2oopwdu"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_40klq"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_40klq"]
[ext_resource type="Resource" uid="uid://mxrnqinnsqnt" path="res://structures/road-straight-lightposts.tres" id="2_u46hd"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_j3mtn"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_j3mtn"]
[sub_resource type="Resource" id="Resource_fai8r"]
script = ExtResource("1_40klq")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/pavement-fountain.glb"])
starting_structures = Array[String]([])

@ -1,9 +1,9 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=7 format=3 uid="uid://d1fykuxfmh2q1"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_wnlf0"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_wnlf0"]
[ext_resource type="Resource" uid="uid://dqqe3iofnleup" path="res://structures/pavement-fountain.tres" id="2_bmmdj"]
[ext_resource type="Resource" uid="uid://y6jafhfnhbrp" path="res://structures/grass-trees-tall.tres" id="3_fegi2"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="4_8gmvv"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="4_8gmvv"]
[sub_resource type="Resource" id="Resource_1ht3m"]
script = ExtResource("1_wnlf0")
@ -57,3 +57,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=4 format=3 uid="uid://detwnqsq87r30"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_cjqfg"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="2_pv8r1"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_cjqfg"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="2_pv8r1"]
[sub_resource type="Resource" id="Resource_e2jx7"]
script = ExtResource("1_cjqfg")
@ -45,3 +45,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String](["res://models/building-small-c.glb"])
starting_structures = Array[String]([])

@ -1,9 +1,9 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=7 format=3 uid="uid://bj7tjuknfaeyg"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_t87pd"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_t87pd"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="2_ys3mw"]
[ext_resource type="Resource" uid="uid://bh65eqgid4kxy" path="res://structures/building-small-c.tres" id="3_jl18p"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="4_2h1ol"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="4_2h1ol"]
[sub_resource type="Resource" id="Resource_mht7j"]
script = ExtResource("1_t87pd")
@ -57,3 +57,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://ctyrlnq5cxuiu"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_r0j2r"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_r0j2r"]
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="2_oqy42"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_r78ev"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_r78ev"]
[sub_resource type="Resource" id="Resource_c21kt"]
script = ExtResource("1_r0j2r")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://bwrkqv42wk8f"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_1k37f"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_1k37f"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="2_qlnvj"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_4udbq"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_4udbq"]
[sub_resource type="Resource" id="Resource_0fxto"]
script = ExtResource("1_1k37f")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://d0nblitd4ixir"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_vdhxy"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_vdhxy"]
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="2_hh0xb"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_k5ivn"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_k5ivn"]
[sub_resource type="Resource" id="Resource_21csl"]
script = ExtResource("1_vdhxy")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://cxh8dgf54oimx"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_c76o5"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_c76o5"]
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="2_4rkoa"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_iqaae"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_iqaae"]
[sub_resource type="Resource" id="Resource_r01e3"]
script = ExtResource("1_c76o5")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -1,8 +1,8 @@
[gd_resource type="Resource" script_class="MissionData" load_steps=5 format=3 uid="uid://cpfr2xnjtpcog"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="1_4b0uw"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="1_4b0uw"]
[ext_resource type="Resource" uid="uid://ccb475jeg7ym5" path="res://structures/grass-trees.tres" id="2_y8alv"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="3_p34yh"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="3_p34yh"]
[sub_resource type="Resource" id="Resource_grdmr"]
script = ExtResource("1_4b0uw")
@ -47,3 +47,4 @@ companion_dialog = {
}
}
unlocked_items = Array[String]([])
starting_structures = Array[String]([])

@ -18,6 +18,7 @@ nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -18,6 +18,7 @@ nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true

@ -13,7 +13,7 @@ config_version=5
config/name="Starter Kit City Builder"
config/tags=PackedStringArray("starterkit")
run/main_scene="res://scenes/main.tscn"
config/features=PackedStringArray("4.3", "Forward Plus")
config/features=PackedStringArray("4.4", "Forward Plus")
boot_splash/bg_color=Color(0.92549, 0.92549, 0.960784, 1)
boot_splash/image="res://splash-screen.png"
config/icon="res://icon.png"

@ -1,10 +1,10 @@
[gd_resource type="Resource" script_class="GenericText" load_steps=2 format=3]
[gd_resource type="Resource" script_class="GenericText" load_steps=2 format=3 uid="uid://bljpugjou1cxo"]
[ext_resource type="Script" path="res://resources/generic_text_panel.resource.gd" id="1_resource"]
[ext_resource type="Script" uid="uid://bt3emc1vt40gq" path="res://resources/generic_text_panel.resource.gd" id="1_resource"]
[resource]
script = ExtResource("1_resource")
panel_type = 0
title = "Building Selector"
body_text = "Select structures to build in your city."
button_text = "Close"
button_text = "Close"

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="PatternRules" load_steps=9 format=3 uid="uid://dykbopx8n3c3v"]
[ext_resource type="Script" path="res://scripts/mission/pattern_rules.gd" id="1_rules"]
[ext_resource type="Script" path="res://scripts/mission/pattern_rule.gd" id="2_rule"]
[ext_resource type="Script" uid="uid://dq0hn1a4b0c0" path="res://scripts/mission/pattern_rules.gd" id="1_rules"]
[ext_resource type="Script" uid="uid://clv4vhawbuihu" path="res://scripts/mission/pattern_rule.gd" id="2_rule"]
[ext_resource type="Resource" uid="uid://d2jplegnkl6u2" path="res://structures/road-corner.tres" id="3_corner"]
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="4_straight"]

@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://b4k3xfm8pd8qw"]
[ext_resource type="Script" path="res://scripts/building_selector.gd" id="1_jybm7"]
[ext_resource type="Resource" path="res://resources/building_selector.tres" id="2_resource"]
[ext_resource type="Script" uid="uid://bsjmj0qu3xfrr" path="res://scripts/building_selector.gd" id="1_jybm7"]
[ext_resource type="Resource" uid="uid://bljpugjou1cxo" path="res://resources/building_selector.tres" id="2_resource"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_panel"]
bg_color = Color(0.145098, 0.172549, 0.231373, 0.941176)

@ -1,6 +1,6 @@
[gd_scene load_steps=8 format=3 uid="uid://b4gkfwf4i3ydl"]
[ext_resource type="Script" path="res://scripts/mission/character_controller.gd" id="1_g3a7y"]
[ext_resource type="Script" uid="uid://c2u81fdo7uou3" path="res://scripts/mission/character_controller.gd" id="1_g3a7y"]
[ext_resource type="PackedScene" uid="uid://h2jjkvc4edsp" path="res://people/character-female-d.glb" id="2_d5jmi"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_b4w3n"]
@ -58,9 +58,9 @@ tracks/0/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_8ib1s"]
_data = {
"RESET": SubResource("Animation_reset"),
"idle": SubResource("Animation_idle"),
"walk": SubResource("Animation_walk")
&"RESET": SubResource("Animation_reset"),
&"idle": SubResource("Animation_idle"),
&"walk": SubResource("Animation_walk")
}
[node name="Character" type="CharacterBody3D"]

@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://bqjnp7uypupog"]
[ext_resource type="FontFile" uid="uid://d0cxd77jybrcn" path="res://fonts/lilita_one_regular.ttf" id="1_tnlhn"]
[ext_resource type="Script" path="res://scripts/controls_panel.gd" id="1_xyuqg"]
[ext_resource type="Script" uid="uid://drdr16kowbvmd" path="res://scripts/controls_panel.gd" id="1_xyuqg"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f2mso"]
bg_color = Color(0.145098, 0.172549, 0.231373, 0.941176)

@ -1,33 +1,33 @@
[gd_scene load_steps=73 format=3 uid="uid://b6eb1v02n61vv"]
[ext_resource type="Script" path="res://scripts/builder.gd" id="1_jybm7"]
[ext_resource type="Script" uid="uid://c37h6na3e4twn" path="res://scripts/builder.gd" id="1_jybm7"]
[ext_resource type="Environment" uid="uid://jbptgqvstei3" path="res://scenes/main-environment.tres" id="1_yndf3"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_54v6r"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_54v6r"]
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="2_bwyku"]
[ext_resource type="Texture2D" uid="uid://cbk07cxgshg26" path="res://sprites/selector.png" id="4_wr1wv"]
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="5_v5o2m"]
[ext_resource type="Resource" uid="uid://ccb475jeg7ym5" path="res://structures/grass-trees.tres" id="6_fwsy4"]
[ext_resource type="Resource" uid="uid://y6jafhfnhbrp" path="res://structures/grass-trees-tall.tres" id="7_t5ykj"]
[ext_resource type="Script" path="res://scripts/view.gd" id="8_yovpv"]
[ext_resource type="Script" uid="uid://d3n8yylhejdoh" path="res://scripts/view.gd" id="8_yovpv"]
[ext_resource type="Resource" uid="uid://tm532uesguhk" path="res://structures/grass.tres" id="9_e755i"]
[ext_resource type="Script" path="res://scripts/mission/mission_manager.gd" id="10_oe3re"]
[ext_resource type="Script" uid="uid://otnxt4e77gmc" path="res://scripts/mission/mission_manager.gd" id="10_oe3re"]
[ext_resource type="Resource" uid="uid://mxrnqinnsqnt" path="res://structures/road-straight-lightposts.tres" id="11_20frt"]
[ext_resource type="Resource" uid="uid://ch8vtcpine1lc" path="res://structures/pavement.tres" id="11_ro3en"]
[ext_resource type="Resource" uid="uid://c4qbn3d85prxx" path="res://structures/power-plant.tres" id="12_xtc7p"]
[ext_resource type="PackedScene" uid="uid://dmsy06s02tcw4" path="res://scenes/generic_text_panel.tscn" id="13_7i6dj"]
[ext_resource type="Resource" uid="uid://bh65eqgid4kxy" path="res://structures/building-small-c.tres" id="13_kf5aa"]
[ext_resource type="Script" path="res://scripts/mission/mission_ui.gd" id="13_xvw5w"]
[ext_resource type="Script" path="res://resources/generic_text_panel.resource.gd" id="14_76jlq"]
[ext_resource type="Script" path="res://scripts/mission/learning_panel.gd" id="14_q2ymb"]
[ext_resource type="Script" uid="uid://ctqqmg4ydlbse" path="res://scripts/mission/mission_ui.gd" id="13_xvw5w"]
[ext_resource type="Script" uid="uid://bt3emc1vt40gq" path="res://resources/generic_text_panel.resource.gd" id="14_76jlq"]
[ext_resource type="Script" uid="uid://dnquivpg0ead" path="res://scripts/mission/learning_panel.gd" id="14_q2ymb"]
[ext_resource type="Resource" uid="uid://dqqe3iofnleup" path="res://structures/pavement-fountain.tres" id="14_t5ykj"]
[ext_resource type="Script" path="res://scripts/mission/mission_data.gd" id="14_vcrh8"]
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="14_vcrh8"]
[ext_resource type="Resource" uid="uid://dveu4dnue0d54" path="res://structures/road-intersection.tres" id="15_e755i"]
[ext_resource type="Resource" uid="uid://cjr36hqnmyn0x" path="res://mission/unit_1.02/census_planning_3.tres" id="17_rrdy6"]
[ext_resource type="FontFile" uid="uid://d0cxd77jybrcn" path="res://fonts/lilita_one_regular.ttf" id="17_vlub6"]
[ext_resource type="PackedScene" uid="uid://b4gkfwf4i3ydl" path="res://scenes/character.tscn" id="18_8lrh8"]
[ext_resource type="PackedScene" uid="uid://cgk66f6rg03mj" path="res://scenes/hud.tscn" id="18_hud"]
[ext_resource type="PackedScene" uid="uid://bqjnp7uypupog" path="res://scenes/controls_panel.tscn" id="19_controls"]
[ext_resource type="Script" path="res://scripts/game_manager.gd" id="20_game_manager"]
[ext_resource type="Script" uid="uid://b5nubrdeseay4" path="res://scripts/game_manager.gd" id="20_game_manager"]
[ext_resource type="Resource" uid="uid://442cwthak2pa" path="res://mission/unit_1.02/market_research_1.tres" id="20_ngu16"]
[ext_resource type="PackedScene" uid="uid://b4s46k58ddpyc" path="res://scenes/sound_panel.tscn" id="21_sound_panel"]
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="21_y11qv"]
@ -62,7 +62,7 @@
[ext_resource type="Resource" uid="uid://d0nblitd4ixir" path="res://mission/unit_1.07/resource_alloc_2.tres" id="48_ck35a"]
[ext_resource type="Resource" uid="uid://cxh8dgf54oimx" path="res://mission/unit_1.07/resource_alloc_3.tres" id="49_cvgxw"]
[ext_resource type="Resource" uid="uid://cpfr2xnjtpcog" path="res://mission/unit_1.07/resource_alloc_4.tres" id="50_6ke0d"]
[ext_resource type="Script" path="res://scripts/mission/mission_objective.gd" id="51_kf5aa"]
[ext_resource type="Script" uid="uid://be2nkvjhpebhi" path="res://scripts/mission/mission_objective.gd" id="51_kf5aa"]
[ext_resource type="Resource" uid="uid://bsic030rpgh08" path="res://mission/unit_1.06/sustainable_dev_2b.tres" id="57_e755i"]
[sub_resource type="Resource" id="Resource_1gdbm"]

@ -1,4 +1,4 @@
[gd_scene load_steps=6 format=3 uid="uid://c6qxpgne58hon"]
[gd_scene load_steps=7 format=3 uid="uid://c6qxpgne58hon"]
[ext_resource type="PackedScene" uid="uid://do24bjaohw3vy" path="res://models/road-straight.glb" id="1_e1p8p"]
[ext_resource type="Script" uid="uid://dm10exi6726ue" path="res://scripts/pathfinding.gd" id="2_3elxe"]

@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://b3kdhu8jq41iq"]
[gd_scene load_steps=3 format=3 uid="uid://b3kdhu8jq41iq"]
[ext_resource type="PackedScene" uid="uid://do24bjaohw3vy" path="res://models/road-straight.glb" id="2_kgyfd"]

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://b6x8v0j6y5n3q"]
[ext_resource type="Script" path="res://scripts/mission/learning_panel.gd" id="1_2k4m3"]
[ext_resource type="Script" uid="uid://dnquivpg0ead" path="res://scripts/mission/learning_panel.gd" id="1_2k4m3"]
[node name="LearningPanel" type="Control"]
layout_mode = 3
@ -53,4 +53,4 @@ alignment = 1
[node name="SubmitButton" type="Button" parent="PanelContainer/MarginContainer/ScrollContainer/VBoxContainer/SubmitButtonContainer"]
layout_mode = 2
size_flags_horizontal = 4
text = "Submit"
text = "Submit"

@ -105,6 +105,22 @@ func _ready():
""")
print("JavaScript callbacks set up")
# Send init data from URL parameters if present
JavaScript.JavaScriptGlobal.eval("""
(function() {
var params = new URLSearchParams(window.location.search);
if (params.has('missions')) {
try {
var missions = JSON.parse(decodeURIComponent(params.get('missions')));
console.log('Sending init data from URL:', missions);
window.godot_interface.emit_signal('init_data_received', missions);
} catch (e) {
console.error('Failed to parse missions param:', e);
}
}
})();
""")
# Process any pending signals
_process_pending_signals()

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://bqb6g3t0tebno"]
[ext_resource type="PackedScene" uid="uid://d0nnrx2y4px2v" path="res://models/building-garage.glb" id="1_gyclk"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_jrinw"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_jrinw"]
[resource]
script = ExtResource("2_jrinw")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://cntgl86ianngh"]
[ext_resource type="PackedScene" uid="uid://cnycdi6t5tj01" path="res://models/building-small-a.glb" id="1_v5apy"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_q3i1h"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_q3i1h"]
[resource]
script = ExtResource("2_q3i1h")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://c5fveedgvunju"]
[ext_resource type="PackedScene" uid="uid://d2h51qlls136h" path="res://models/building-small-b.glb" id="1_klt7o"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_a2t3e"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_a2t3e"]
[resource]
script = ExtResource("2_a2t3e")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://bh65eqgid4kxy"]
[ext_resource type="PackedScene" uid="uid://m74mvao50wnm" path="res://models/building-small-c.glb" id="1_6yyww"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_rkiq0"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_rkiq0"]
[resource]
script = ExtResource("2_rkiq0")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://y6jafhfnhbrp"]
[ext_resource type="PackedScene" uid="uid://dy26b1ba2j2v1" path="res://models/grass-trees-tall.glb" id="1_nbdd1"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_b2sah"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_b2sah"]
[resource]
script = ExtResource("2_b2sah")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://ccb475jeg7ym5"]
[ext_resource type="PackedScene" uid="uid://b1711sieed2u6" path="res://models/grass-trees.glb" id="1_lcgc1"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_pnpij"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_pnpij"]
[resource]
script = ExtResource("2_pnpij")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://tm532uesguhk"]
[ext_resource type="PackedScene" uid="uid://cr3btp34bp3eg" path="res://models/grass.glb" id="1_2n0ef"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_1i4lf"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_1i4lf"]
[resource]
script = ExtResource("2_1i4lf")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://c4qbn3d85prxx"]
[ext_resource type="PackedScene" uid="uid://ckxkrnomcegue" path="res://models/power_plant.glb" id="1_r8n8k"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="3_oloyn"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="3_oloyn"]
[resource]
script = ExtResource("3_oloyn")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://dveu4dnue0d54"]
[ext_resource type="PackedScene" uid="uid://euxdh7lkq0oj" path="res://models/road-intersection.glb" id="1_pnjl2"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_3eq5k"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_3eq5k"]
[resource]
script = ExtResource("2_3eq5k")

@ -14,5 +14,6 @@ kW_usage = 0.0
kW_production = 0.0
selector_scale = 2.8
unlocked = false
spawn_builder = false
description = "Description"
thumbnail = "Thumbnail"

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://mxrnqinnsqnt"]
[ext_resource type="PackedScene" uid="uid://5kchntr735l" path="res://models/road-straight-lightposts.glb" id="1_i07jw"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="2_470aq"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_470aq"]
[resource]
script = ExtResource("2_470aq")

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Structure" load_steps=3 format=3 uid="uid://dv14kkhb6umkv"]
[ext_resource type="Script" path="res://scripts/structure.gd" id="1_5fmmh"]
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="1_5fmmh"]
[ext_resource type="PackedScene" uid="uid://do24bjaohw3vy" path="res://models/road-straight.glb" id="1_ump1f"]
[resource]