diff --git a/building.gdshader b/building.gdshader index ff2b604..2c950f1 100644 --- a/building.gdshader +++ b/building.gdshader @@ -1,7 +1,7 @@ shader_type canvas_item; -uniform ivec2 location; -uniform ivec2 dimension = ivec2(1,1); +varying flat ivec2 location; +varying flat ivec2 dimension; uniform float ground_height = 3000.; uniform float cell_height = 300.; @@ -12,6 +12,10 @@ varying vec2 world_position; void vertex() { world_position = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy; + location = ivec2(256. * COLOR.xy); + dimension = ivec2(256. * COLOR.zw); + //location = ivec2(45, 1); + //dimension = ivec2(1, 1); } void fragment() { @@ -25,6 +29,7 @@ void fragment() { discard; } COLOR = texture(TEXTURE, vec2(sample_x, sample_y)); + //COLOR = vec4(ivec4(location, dimension)); } diff --git a/building.tscn b/building.tscn index 16ffed3..7ccd539 100644 --- a/building.tscn +++ b/building.tscn @@ -1,14 +1,13 @@ -[gd_scene load_steps=5 format=3 uid="uid://djawvtdwp423v"] +[gd_scene load_steps=6 format=3 uid="uid://djawvtdwp423v"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://building.gd" id="1_5j34s"] [ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="2_2yopf"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://building.gdshader" id="2_f1gjg"] +[ext_resource type="Script" uid="uid://dj7d4d2xs3nci" path="res://building_mesh.gd" id="4_qnfc1"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_qnfc1"] resource_local_to_scene = true shader = ExtResource("2_f1gjg") -shader_parameter/location = Vector2i(45, 0) -shader_parameter/dimension = Vector2i(1, 1) shader_parameter/ground_height = 3000.0 shader_parameter/cell_height = 300.0 shader_parameter/num_cells = 60 @@ -17,6 +16,8 @@ shader_parameter/num_cells = 60 script = ExtResource("1_5j34s") [node name="Sprite2D" type="Sprite2D" parent="."] +self_modulate = Color(0.1764706, 0, 0.003921569, 0.003921569) material = SubResource("ShaderMaterial_qnfc1") scale = Vector2(7, 7) texture = ExtResource("2_2yopf") +script = ExtResource("4_qnfc1") diff --git a/building_mesh.gd b/building_mesh.gd new file mode 100644 index 0000000..7a381f4 --- /dev/null +++ b/building_mesh.gd @@ -0,0 +1,7 @@ +extends Sprite2D + +func _ready() -> void: + var location = Vector2i(get_parent().location) + var dimension = Vector2i(get_parent().dimension) + print(location, dimension) + self_modulate = Color8(location.x, location.y, dimension.x, dimension.y) diff --git a/building_mesh.gd.uid b/building_mesh.gd.uid new file mode 100644 index 0000000..fc7bbb1 --- /dev/null +++ b/building_mesh.gd.uid @@ -0,0 +1 @@ +uid://dj7d4d2xs3nci diff --git a/earth.tscn b/earth.tscn index 8b3dd35..8785027 100644 --- a/earth.tscn +++ b/earth.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=5 format=3 uid="uid://33k5v6skcbsm"] +[gd_scene load_steps=4 format=3 uid="uid://33k5v6skcbsm"] [ext_resource type="Script" uid="uid://b5fhsy1xlreco" path="res://draw_circle.gd" id="2_2bhor"] [ext_resource type="Script" uid="uid://m3vyyfk8gnma" path="res://grid.gd" id="3_2bhor"] -[ext_resource type="PackedScene" uid="uid://djawvtdwp423v" path="res://building.tscn" id="3_5i67w"] [sub_resource type="CircleShape2D" id="CircleShape2D_5i67w"] radius = 3000.0 @@ -28,9 +27,3 @@ cell_height = 300.0 num_collumns = 60 debug = true metadata/_custom_type_script = "uid://m3vyyfk8gnma" - -[node name="Building" parent="." instance=ExtResource("3_5i67w")] -position = Vector2(-5212, -1497) - -[node name="Building2" parent="." instance=ExtResource("3_5i67w")] -position = Vector2(49, 25) diff --git a/grid.gd b/grid.gd index 1f56b8a..44510ef 100644 --- a/grid.gd +++ b/grid.gd @@ -32,6 +32,15 @@ func add_building_to_collumn(building : Building, collumn : int): # for testing func _ready() -> void: var packed : PackedScene = preload("res://building.tscn") + var test_building = packed.instantiate() + test_building.location = Vector2(45, 0) + add_child(test_building) + + test_building = packed.instantiate() + test_building.location = Vector2(44, 0) + add_child(test_building) + + test_building = packed.instantiate() test_building.location = Vector2(45, 1) add_child(test_building) diff --git a/project.godot b/project.godot index ea99ec8..4ff6475 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="The Dark Side of Earth" run/main_scene="res://earth.tscn" -config/features=PackedStringArray("4.4", "Forward Plus") +config/features=PackedStringArray("4.5", "Forward Plus") config/icon="res://icon.svg" [display]