diff --git a/Graphics/IngameSpace.shader b/Graphics/IngameSpace.shader new file mode 100644 index 0000000..1b5d54d --- /dev/null +++ b/Graphics/IngameSpace.shader @@ -0,0 +1,46 @@ +shader_type canvas_item; + +uniform sampler2D noise_sparse; +uniform sampler2D noise_fine; + +uniform float scroll_speed = 0.0; +uniform float warp_boost: hint_range(1, 10) = 1.0; +uniform float warp_opacity : hint_range(0, 1) = 0.0; + +const float noise_sparse_scale = 0.0007; +const float noise_fine_scale = 0.003; +const float warp_clouds_scale = 0.0003; +const vec2 scroll_dir = vec2(1,0); +const vec2 blink_scroll = vec2(50.0, 0); +const float PI = 3.1415; + +render_mode unshaded; + +void fragment() { + float scroll = scroll_speed * TIME; + float sparse = texture(noise_sparse, (FRAGCOORD.xy + scroll_dir * scroll)*noise_sparse_scale).r; + sparse = ((sparse * sparse) - 0.2) * 1.2; + float fine = texture(noise_fine, (FRAGCOORD.xy + scroll_dir * scroll)*noise_fine_scale).r; + fine = fine - 0.6; + if (fine > 0.) { + fine = fine * 10.0; + } + if (fine > 0.3) { + float fine_blink_fade = texture(noise_sparse, (FRAGCOORD.xy + blink_scroll*TIME)*noise_sparse_scale).r; + fine = fine - ((fine_blink_fade * fine_blink_fade) - 0.2) * 1.2; + } + vec4 clouds = vec4(vec3(0.3, 0.5, 0.7) * sparse, 1.0); + vec4 stars = vec4(fine); + + vec2 warp_scroll = scroll_dir * scroll; + vec2 warp_uv = (FRAGCOORD.xy * sin(SCREEN_UV.y * PI) + warp_scroll)*warp_clouds_scale; + vec2 warp_uv_inv = (FRAGCOORD.xy * sin((abs(SCREEN_UV.y-0.5)) * SCREEN_UV.x * PI) + warp_scroll*0.5)*warp_clouds_scale; + float warp_clouds_sparse = texture(noise_sparse, vec2(0.5,1) * warp_uv).r; + float warp_clouds_fine = texture(noise_sparse, vec2(2,1) * warp_uv_inv).r; + + vec4 warp = vec4(vec3(0), 1); + warp += vec4(vec3(0.3,0.2,0.9)*warp_clouds_sparse, 0); + warp += vec4(vec3(0.5,0.0,0.5)*(warp_clouds_fine*0.5+warp_clouds_sparse)*abs(SCREEN_UV.y-0.5), 0); + + COLOR = mix(clouds + stars, warp*warp_boost, warp_opacity); +} \ No newline at end of file diff --git a/Graphics/UI/grid.png b/Graphics/UI/grid.png new file mode 100644 index 0000000..1b07afa Binary files /dev/null and b/Graphics/UI/grid.png differ diff --git a/Graphics/UI/grid.png.import b/Graphics/UI/grid.png.import new file mode 100644 index 0000000..f3ff70f --- /dev/null +++ b/Graphics/UI/grid.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/grid.png-dcf3a2dc07c07f64832e0ff565fb3712.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Graphics/UI/grid.png" +dest_files=[ "res://.import/grid.png-dcf3a2dc07c07f64832e0ff565fb3712.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=1 +flags/filter=false +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Graphics/UI/ui_theme.tres b/Graphics/UI/ui_theme.tres index a2a0ff9..194f49a 100644 --- a/Graphics/UI/ui_theme.tres +++ b/Graphics/UI/ui_theme.tres @@ -38,6 +38,17 @@ expand_margin_bottom = 8.0 [resource] default_font = ExtResource( 1 ) +Button/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +Button/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +Button/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +Button/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +Button/constants/hseparation = 2 +Button/fonts/font = null +Button/styles/disabled = null +Button/styles/focus = null +Button/styles/hover = null +Button/styles/normal = null +Button/styles/pressed = null Panel/styles/panel = SubResource( 1 ) PanelContainer/styles/panel = SubResource( 1 ) PopupDialog/styles/panel = SubResource( 1 ) @@ -59,3 +70,14 @@ PopupMenu/styles/labeled_separator_right = null PopupMenu/styles/panel = SubResource( 2 ) PopupMenu/styles/panel_disabled = null PopupMenu/styles/separator = null +ToolButton/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +ToolButton/colors/font_color_disabled = Color( 0.9, 0.95, 1, 0.3 ) +ToolButton/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +ToolButton/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +ToolButton/constants/hseparation = 3 +ToolButton/fonts/font = null +ToolButton/styles/disabled = null +ToolButton/styles/focus = null +ToolButton/styles/hover = null +ToolButton/styles/normal = null +ToolButton/styles/pressed = null diff --git a/Graphics/deepspace_mat.tres b/Graphics/deepspace_mat.tres new file mode 100644 index 0000000..e437f8a --- /dev/null +++ b/Graphics/deepspace_mat.tres @@ -0,0 +1,74 @@ +[gd_resource type="ShaderMaterial" load_steps=6 format=2] + +[sub_resource type="Shader" id=1] +code = "shader_type canvas_item; + +uniform sampler2D noise_sparse; +uniform sampler2D noise_fine; + +uniform float scroll_speed = 0.0; +uniform float warp_boost: hint_range(1, 10) = 1.0; +uniform float warp_opacity : hint_range(0, 1) = 0.0; + +const float noise_sparse_scale = 0.0007; +const float noise_fine_scale = 0.003; +const float warp_clouds_scale = 0.0003; +const vec2 scroll_dir = vec2(1,0); +const vec2 blink_scroll = vec2(50.0, 0); +const float PI = 3.1415; + +render_mode unshaded; + +void fragment() { + float scroll = scroll_speed * TIME; + float sparse = texture(noise_sparse, (FRAGCOORD.xy + scroll_dir * scroll)*noise_sparse_scale).r; + sparse = ((sparse * sparse) - 0.2) * 1.2; + float fine = texture(noise_fine, (FRAGCOORD.xy + scroll_dir * scroll)*noise_fine_scale).r; + fine = fine - 0.6; + if (fine > 0.) { + fine = fine * 10.0; + } + if (fine > 0.3) { + float fine_blink_fade = texture(noise_sparse, (FRAGCOORD.xy + blink_scroll*TIME)*noise_sparse_scale).r; + fine = fine - ((fine_blink_fade * fine_blink_fade) - 0.2) * 1.2; + } + vec4 clouds = vec4(vec3(0.3, 0.5, 0.7) * sparse, 1.0); + vec4 stars = vec4(fine); + + vec2 warp_scroll = scroll_dir * scroll; + vec2 warp_uv = (FRAGCOORD.xy * sin(SCREEN_UV.y * PI) + warp_scroll)*warp_clouds_scale; + vec2 warp_uv_inv = (FRAGCOORD.xy * sin((abs(SCREEN_UV.y-0.5)) * SCREEN_UV.x * PI) + warp_scroll*0.5)*warp_clouds_scale; + float warp_clouds_sparse = texture(noise_sparse, vec2(0.5,1) * warp_uv).r; + float warp_clouds_fine = texture(noise_sparse, vec2(2,1) * warp_uv_inv).r; + + vec4 warp = vec4(vec3(0), 1); + warp += vec4(vec3(0.3,0.2,0.9)*warp_clouds_sparse, 0); + warp += vec4(vec3(0.5,0.0,0.5)*(warp_clouds_fine*0.5+warp_clouds_sparse)*abs(SCREEN_UV.y-0.5), 0); + + COLOR = mix(clouds + stars, warp*warp_boost, warp_opacity); +}" + +[sub_resource type="OpenSimplexNoise" id=2] +period = 2.0 +persistence = 0.6 +lacunarity = 3.0 + +[sub_resource type="NoiseTexture" id=3] +seamless = true +noise = SubResource( 2 ) + +[sub_resource type="OpenSimplexNoise" id=4] + +[sub_resource type="NoiseTexture" id=5] +width = 1024 +height = 1024 +seamless = true +noise = SubResource( 4 ) + +[resource] +shader = SubResource( 1 ) +shader_param/scroll_speed = 0.0 +shader_param/warp_boost = 0.0 +shader_param/warp_opacity = 0.0 +shader_param/noise_sparse = SubResource( 5 ) +shader_param/noise_fine = SubResource( 3 ) diff --git a/Scenes/InEditorMap.gd b/Scenes/InEditorMap.gd new file mode 100644 index 0000000..1165ada --- /dev/null +++ b/Scenes/InEditorMap.gd @@ -0,0 +1,37 @@ +extends Node2D + +var debug_areas = false + +const ProbeElectricity = preload("res://Actors/Systems/Electricity/ElectricProbe.tscn") + +onready var tilemaps = [ $tiles/base, $tiles/cables, $tiles/floor, $tiles/walls ] + +onready var pois = $pois + +func _ready(): + pass + # Run autotile conversions and generate occlusions + #$tiles/walls.run_conversions() + + # Electricity setup + #make_electric_probes($tiles/cables, "Wire") + +# Tileset related functions + +func make_electric_probes(tilemap: TileMap, tile_name: String): + var tile_id = tilemap.tile_set.find_tile_by_name(tile_name) + for cell in tilemap.get_used_cells_by_id(tile_id): + var coord = tilemap.map_to_world(cell) + var probe = ProbeElectricity.instance() + probe.position = coord + tilemap.add_child(probe) + +func get_pois(type_filter, class_filter) -> Array: + var filtered = [] + for child in $pois.get_children(): + if type_filter != null and child.poitype != type_filter: + continue + if class_filter != null and child.poiclass != class_filter: + continue + filtered.append(child) + return filtered diff --git a/Scenes/MapEditor.gd b/Scenes/MapEditor.gd new file mode 100644 index 0000000..2f1ceb8 --- /dev/null +++ b/Scenes/MapEditor.gd @@ -0,0 +1,58 @@ +extends Control + +onready var map_menu = $menu/menubar/MapMenu.get_popup() +onready var map_node = $map + +const MAP_SCALE_MAX = 8 +const MAP_SCALE_MIN = 0.25 + +func _ready(): + pass + +# Prevent input handler from running when other dialogs/actions are focused +var input_lock = false + +# Drag variables +var dragging = false +var view_origin = Vector2.ZERO +var mouse_origin = Vector2.ZERO + +func _input(ev: InputEvent): + if input_lock: + return + + if ev is InputEventMouseMotion: + if dragging: + map_node.position = view_origin - (mouse_origin - ev.global_position) + else: + # Map cursor location to grid + var mouseOffset = ev.global_position - map_node.global_position + + + if ev is InputEventMouseButton: + var mouse = ev as InputEventMouseButton + if mouse.pressed: + match ev.button_index: + BUTTON_WHEEL_UP: + # Zoom in + if map_node.scale.x < MAP_SCALE_MAX: + if map_node.scale.x < 1: + map_node.scale *= 2 + else: + map_node.scale += Vector2.ONE + BUTTON_WHEEL_DOWN: + # Zoom out + if map_node.scale.x > MAP_SCALE_MIN: + if map_node.scale.x <= 1: + map_node.scale /= 2 + else: + map_node.scale -= Vector2.ONE + BUTTON_MIDDLE: + view_origin = map_node.position + mouse_origin = ev.global_position + dragging = true + else: + match ev.button_index: + BUTTON_MIDDLE: + dragging = false + map_node.position = view_origin - (mouse_origin - ev.global_position) diff --git a/Scenes/MapEditor.tscn b/Scenes/MapEditor.tscn new file mode 100644 index 0000000..09384b2 --- /dev/null +++ b/Scenes/MapEditor.tscn @@ -0,0 +1,293 @@ +[gd_scene load_steps=23 format=2] + +[ext_resource path="res://Graphics/deepspace_mat.tres" type="Material" id=1] +[ext_resource path="res://Scenes/InEditorMap.gd" type="Script" id=2] +[ext_resource path="res://Graphics/tgstation/walls.tres" type="TileSet" id=3] +[ext_resource path="res://Graphics/tgstation/1x1.tres" type="TileSet" id=4] +[ext_resource path="res://Graphics/tgstation/base.tres" type="TileSet" id=5] +[ext_resource path="res://Graphics/tgstation/floor.tres" type="TileSet" id=6] +[ext_resource path="res://Graphics/tgstation/cables.tres" type="TileSet" id=7] +[ext_resource path="res://Scenes/Rendering/MapTiles.gd" type="Script" id=8] +[ext_resource path="res://Graphics/UI/uifont.tres" type="DynamicFont" id=9] +[ext_resource path="res://Scenes/MapEditor.gd" type="Script" id=10] +[ext_resource path="res://Graphics/UI/grid.png" type="Texture" id=11] +[ext_resource path="res://Graphics/tgstation/floors.png" type="Texture" id=12] +[ext_resource path="res://Graphics/tgstation/wires-l2.png" type="Texture" id=13] +[ext_resource path="res://Graphics/tgstation/wall.png" type="Texture" id=14] + +[sub_resource type="StyleBoxFlat" id=1] +content_margin_left = 15.0 +content_margin_right = 15.0 +content_margin_top = 5.0 +content_margin_bottom = 5.0 +bg_color = Color( 0.0588235, 0.0627451, 0.105882, 0.784314 ) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id=2] +content_margin_left = 10.0 +content_margin_right = 10.0 +bg_color = Color( 0.364706, 0.45098, 0.607843, 0.392157 ) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 + +[sub_resource type="StyleBoxFlat" id=3] +content_margin_left = 10.0 +content_margin_right = 10.0 +bg_color = Color( 0.305882, 0.368627, 0.576471, 0.784314 ) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 + +[sub_resource type="StyleBoxEmpty" id=4] +content_margin_left = 10.0 +content_margin_right = 10.0 + +[sub_resource type="ButtonGroup" id=6] + +[sub_resource type="AtlasTexture" id=5] +atlas = ExtResource( 12 ) +region = Rect2( 32, 192, 32, 32 ) + +[sub_resource type="AtlasTexture" id=7] +atlas = ExtResource( 13 ) +region = Rect2( 64, 224, 32, 32 ) + +[sub_resource type="AtlasTexture" id=8] +atlas = ExtResource( 12 ) +region = Rect2( 96, 160, 32, 32 ) + +[node name="Control" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 10 ) +__meta__ = { +"_edit_lock_": true, +"_edit_use_anchors_": false +} + +[node name="background" type="ColorRect" parent="."] +material = ExtResource( 1 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0, 0, 0, 1 ) +__meta__ = { +"_edit_lock_": true, +"_edit_use_anchors_": false +} + +[node name="map" type="Node2D" parent="."] +script = ExtResource( 2 ) + +[node name="cursor" type="Node2D" parent="map"] + +[node name="Sprite" type="Sprite" parent="map/cursor"] +texture = ExtResource( 14 ) +centered = false + +[node name="grid" type="Sprite" parent="map"] +position = Vector2( -2560, -2800 ) +texture = ExtResource( 11 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 6400, 6400 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="tiles" type="Node2D" parent="map"] + +[node name="base" type="TileMap" parent="map/tiles"] +z_index = 1 +z_as_relative = false +tile_set = ExtResource( 5 ) +cell_size = Vector2( 32, 32 ) +cell_quadrant_size = 32 +occluder_light_mask = -2147483647 +format = 1 + +[node name="cables" type="TileMap" parent="map/tiles"] +z_index = 2 +z_as_relative = false +tile_set = ExtResource( 7 ) +cell_size = Vector2( 32, 32 ) +cell_quadrant_size = 32 +occluder_light_mask = -2147483647 +format = 1 + +[node name="floor" type="TileMap" parent="map/tiles"] +z_index = 3 +z_as_relative = false +tile_set = ExtResource( 6 ) +cell_size = Vector2( 32, 32 ) +cell_quadrant_size = 32 +occluder_light_mask = -2147483647 +format = 1 + +[node name="walls" type="TileMap" parent="map/tiles"] +z_index = 4 +z_as_relative = false +tile_set = ExtResource( 3 ) +cell_size = Vector2( 32, 32 ) +cell_quadrant_size = 32 +occluder_light_mask = -2147483647 +format = 1 +script = ExtResource( 8 ) +extended_tilemap_node = NodePath("../../../VBoxContainer/map/tiles/1x1") + +[node name="1x1" type="TileMap" parent="map/tiles"] +z_index = 5 +z_as_relative = false +tile_set = ExtResource( 4 ) +cell_size = Vector2( 16, 16 ) +format = 1 + +[node name="engines" type="Node2D" parent="map"] +modulate = Color( 0.980392, 0.980392, 0.980392, 1 ) +__meta__ = { +"_edit_group_": true, +"_edit_lock_": true +} + +[node name="objects" type="Node2D" parent="map"] +z_index = 10 +__meta__ = { +"_editor_description_": "" +} + +[node name="sockets" type="Node2D" parent="map"] +z_index = 2 +z_as_relative = false + +[node name="lights" type="Node2D" parent="map"] +modulate = Color( 0.980392, 0.980392, 0.980392, 1 ) +z_index = 11 +__meta__ = { +"_edit_group_": true, +"_edit_lock_": true +} + +[node name="pois" type="Node2D" parent="map"] +z_index = 999 + +[node name="areas" type="Node2D" parent="map"] + +[node name="menu" type="PanelContainer" parent="."] +margin_left = 5.0 +margin_top = 5.0 +margin_right = 1275.0 +margin_bottom = 43.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="menu"] +margin_left = 526.0 +margin_top = 5.0 +margin_right = 744.0 +margin_bottom = 33.0 +size_flags_horizontal = 4 +size_flags_vertical = 6 +custom_styles/normal = SubResource( 1 ) +custom_fonts/font = ExtResource( 9 ) +text = "- Untitled (untitled.omd) -" +align = 1 + +[node name="menubar" type="HBoxContainer" parent="menu"] +margin_left = 4.0 +margin_top = 4.0 +margin_right = 1266.0 +margin_bottom = 34.0 +rect_min_size = Vector2( 0, 30 ) +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="MapMenu" type="MenuButton" parent="menu/menubar"] +margin_right = 46.0 +margin_bottom = 30.0 +custom_styles/hover = SubResource( 2 ) +custom_styles/pressed = SubResource( 3 ) +custom_styles/normal = SubResource( 4 ) +custom_fonts/font = ExtResource( 9 ) +text = "Map" +flat = false +switch_on_hover = true + +[node name="PlayMenu" type="MenuButton" parent="menu/menubar"] +visible = false +margin_left = 50.0 +margin_right = 98.0 +margin_bottom = 30.0 +custom_styles/hover = SubResource( 2 ) +custom_styles/pressed = SubResource( 3 ) +custom_styles/normal = SubResource( 4 ) +custom_fonts/font = ExtResource( 9 ) +text = "Play" +flat = false + +[node name="layers" type="PanelContainer" parent="."] +anchor_top = 1.0 +anchor_bottom = 1.0 +margin_left = 5.0 +margin_top = -177.0 +margin_right = 57.0 +margin_bottom = -5.0 +size_flags_vertical = 13 + +[node name="buttons" type="VBoxContainer" parent="layers"] +margin_left = 4.0 +margin_top = 4.0 +margin_right = 48.0 +margin_bottom = 168.0 +alignment = 2 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="walls" type="Button" parent="layers/buttons"] +margin_right = 44.0 +margin_bottom = 38.0 +rect_min_size = Vector2( 32, 32 ) +size_flags_horizontal = 13 +size_flags_vertical = 13 +toggle_mode = true +group = SubResource( 6 ) +icon = ExtResource( 14 ) + +[node name="floor" type="Button" parent="layers/buttons"] +margin_top = 42.0 +margin_right = 44.0 +margin_bottom = 80.0 +rect_min_size = Vector2( 32, 32 ) +size_flags_horizontal = 13 +size_flags_vertical = 13 +toggle_mode = true +group = SubResource( 6 ) +icon = SubResource( 5 ) + +[node name="cables" type="Button" parent="layers/buttons"] +margin_top = 84.0 +margin_right = 44.0 +margin_bottom = 122.0 +rect_min_size = Vector2( 32, 32 ) +size_flags_horizontal = 13 +size_flags_vertical = 13 +toggle_mode = true +group = SubResource( 6 ) +icon = SubResource( 7 ) + +[node name="base" type="Button" parent="layers/buttons"] +margin_top = 126.0 +margin_right = 44.0 +margin_bottom = 164.0 +rect_min_size = Vector2( 32, 32 ) +size_flags_horizontal = 13 +size_flags_vertical = 13 +toggle_mode = true +group = SubResource( 6 ) +icon = SubResource( 8 ) diff --git a/addons/pnhelper/plugin.cfg b/addons/pnhelper/plugin.cfg deleted file mode 100644 index 9d63049..0000000 --- a/addons/pnhelper/plugin.cfg +++ /dev/null @@ -1,7 +0,0 @@ -[plugin] - -name="PowerNetworkHelper" -description="Helper tools for connecting devices to power networks" -author="Hamcha" -version="0.1" -script="plugin.gd" diff --git a/addons/pnhelper/plugin.gd b/addons/pnhelper/plugin.gd deleted file mode 100644 index 58db313..0000000 --- a/addons/pnhelper/plugin.gd +++ /dev/null @@ -1,13 +0,0 @@ -tool -extends EditorPlugin - -var dock - -func _enter_tree(): - dock = preload("res://addons/pnhelper/pngui.tscn").instance() - dock.api = self - add_control_to_dock(DOCK_SLOT_RIGHT_BL, dock) - -func _exit_tree(): - remove_control_from_docks(dock) - dock.free() diff --git a/addons/pnhelper/pngui.gd b/addons/pnhelper/pngui.gd deleted file mode 100644 index b5490d9..0000000 --- a/addons/pnhelper/pngui.gd +++ /dev/null @@ -1,57 +0,0 @@ -tool - -extends Control - -var socketTemplate = preload("res://Actors/Objects/ElectricSocket/ElectricSocket.tscn") - -var api : EditorPlugin - -onready var socket_types = $Commands/MakeSocket/Type - -func _ready(): - # Add make_socket options - socket_types.add_item("SNK", 0) - socket_types.add_item("SRC", 1) - socket_types.add_item("BID", 2) - -func _make_socket(direction: String) -> void: - var socket_dir = null - var socket_type = null - var offset = Vector2.ZERO - match direction: - "up": - socket_dir = ElectricSocket.Direction.DOWN - offset.y = -32 - "left": - socket_dir = ElectricSocket.Direction.RIGHT - offset.x = -32 - "down": - socket_dir = ElectricSocket.Direction.UP - offset.y = 32 - "right": - socket_dir = ElectricSocket.Direction.LEFT - offset.x = 32 - match socket_types.get_selected_id(): - 0: - socket_type = ElectricSocket.Flow.SINK - 1: - socket_type = ElectricSocket.Flow.SOURCE - 2: - socket_type = ElectricSocket.Flow.BIDIRECTIONAL - var map = api.get_editor_interface().get_edited_scene_root() - var sockets = map.get_node("sockets") - var nodes = api.get_editor_interface().get_selection().get_selected_nodes() - for node in nodes: - var socket = socketTemplate.instance() - sockets.add_child(socket) - socket.direction = socket_dir - socket.flow = socket_type - socket.owner = map - socket.global_position = node.global_position + offset - socket.connectionPaths = [socket.get_path_to(node)] - -func _area_debug_modified(button_pressed): - var map = api.get_editor_interface().get_edited_scene_root() as GameMap - map.debug_areas = button_pressed - for area in map.get_node("areas").get_children(): - area.update() diff --git a/addons/pnhelper/pngui.tscn b/addons/pnhelper/pngui.tscn deleted file mode 100644 index 9a32817..0000000 --- a/addons/pnhelper/pngui.tscn +++ /dev/null @@ -1,73 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://addons/pnhelper/pngui.gd" type="Script" id=1] - -[node name="Mapping tools" type="Control"] -anchor_right = 1.0 -anchor_bottom = 1.0 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Commands" type="VBoxContainer" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -size_flags_horizontal = 3 -size_flags_vertical = 3 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="MakeSocket" type="HBoxContainer" parent="Commands"] -margin_right = 1280.0 -margin_bottom = 20.0 - -[node name="Label" type="Label" parent="Commands/MakeSocket"] -margin_top = 3.0 -margin_right = 84.0 -margin_bottom = 17.0 -text = "Make socket " - -[node name="Type" type="OptionButton" parent="Commands/MakeSocket"] -margin_left = 88.0 -margin_right = 142.0 -margin_bottom = 20.0 -text = "SNK" -items = [ "SNK", null, false, 0, null, "SRC", null, false, 1, null, "BID", null, false, 2, null ] -selected = 0 - -[node name="Left" type="Button" parent="Commands/MakeSocket"] -margin_left = 146.0 -margin_right = 166.0 -margin_bottom = 20.0 -text = "<" - -[node name="Up" type="Button" parent="Commands/MakeSocket"] -margin_left = 170.0 -margin_right = 189.0 -margin_bottom = 20.0 -text = "^" - -[node name="Down" type="Button" parent="Commands/MakeSocket"] -margin_left = 193.0 -margin_right = 212.0 -margin_bottom = 20.0 -text = "v" - -[node name="Right" type="Button" parent="Commands/MakeSocket"] -margin_left = 216.0 -margin_right = 236.0 -margin_bottom = 20.0 -text = ">" - -[node name="DebugAreas" type="CheckBox" parent="Commands"] -margin_top = 24.0 -margin_right = 1280.0 -margin_bottom = 48.0 -text = "Show areas" -[connection signal="pressed" from="Commands/MakeSocket/Left" to="." method="_make_socket" binds= [ "left" ]] -[connection signal="pressed" from="Commands/MakeSocket/Up" to="." method="_make_socket" binds= [ "up" ]] -[connection signal="pressed" from="Commands/MakeSocket/Down" to="." method="_make_socket" binds= [ "down" ]] -[connection signal="pressed" from="Commands/MakeSocket/Right" to="." method="_make_socket" binds= [ "right" ]] -[connection signal="toggled" from="Commands/DebugAreas" to="." method="_area_debug_modified"] diff --git a/project.godot b/project.godot index 73130ed..dbce45e 100644 --- a/project.godot +++ b/project.godot @@ -177,7 +177,7 @@ window/size/height=800 [editor_plugins] -enabled=PoolStringArray( "pnhelper" ) +enabled=PoolStringArray( ) [gui]