Add dynamic map loading and spawnpoints
This commit is contained in:
parent
4b4288c0eb
commit
95bdff8c37
12 changed files with 92 additions and 66 deletions
12
Actors/Meta/POI/Spawnpoints/Player.gd
Normal file
12
Actors/Meta/POI/Spawnpoints/Player.gd
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
tool
|
||||||
|
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
class_name SpawnpointPlayer
|
||||||
|
|
||||||
|
var poitype = POIData.POIType.SpawnPoint
|
||||||
|
var poiclass = POIData.POIClass.Player
|
||||||
|
|
||||||
|
func _draw():
|
||||||
|
if Engine.editor_hint:
|
||||||
|
draw_arc(Vector2.ZERO, 10, 0, PI*2, 16, Color.red)
|
|
@ -55,7 +55,7 @@ func _input_event(_viewport, event, _shape_idx):
|
||||||
if activationRange.in_range():
|
if activationRange.in_range():
|
||||||
set_lit(!lit)
|
set_lit(!lit)
|
||||||
|
|
||||||
func _power_status_changed(powered: bool) -> void:
|
func _power_status_changed(_powered: bool) -> void:
|
||||||
update_light()
|
update_light()
|
||||||
refresh_sprite()
|
refresh_sprite()
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ var grip = 1.0
|
||||||
var stamina = MAX_STAMINA
|
var stamina = MAX_STAMINA
|
||||||
var speed_boost = 0
|
var speed_boost = 0
|
||||||
|
|
||||||
onready var world = $"/root/scene/world" as GameWorld
|
onready var world = $"/root/scene/world"
|
||||||
|
|
||||||
export var is_controlled = false setget set_is_controlled
|
export var is_controlled = false setget set_is_controlled
|
||||||
|
|
||||||
|
|
1
Actors/Player/Player.tscn
Executable file → Normal file
1
Actors/Player/Player.tscn
Executable file → Normal file
|
@ -8,6 +8,7 @@ radius = 10.4436
|
||||||
height = 5.44386
|
height = 5.44386
|
||||||
|
|
||||||
[node name="Player" type="KinematicBody2D"]
|
[node name="Player" type="KinematicBody2D"]
|
||||||
|
z_index = 10
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="Camera" type="Camera2D" parent="."]
|
[node name="Camera" type="Camera2D" parent="."]
|
||||||
|
|
9
Classes/POI.gd
Normal file
9
Classes/POI.gd
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
class_name POIData
|
||||||
|
|
||||||
|
enum POIType {
|
||||||
|
SpawnPoint
|
||||||
|
}
|
||||||
|
|
||||||
|
enum POIClass {
|
||||||
|
Player
|
||||||
|
}
|
|
@ -3,14 +3,12 @@ extends Node
|
||||||
class_name GameInstance
|
class_name GameInstance
|
||||||
|
|
||||||
onready var ui = $CanvasLayer/ui
|
onready var ui = $CanvasLayer/ui
|
||||||
onready var world = $world as GameWorld
|
onready var world = $world
|
||||||
onready var systems = $systems
|
onready var systems = $systems
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
randomize()
|
randomize()
|
||||||
|
|
||||||
ui.connect("command", world, "process_command")
|
ui.connect("command", world, "process_command")
|
||||||
$world/runtime.queue_free()
|
|
||||||
|
|
||||||
func process_command(cmd: UICommand):
|
func process_command(cmd: UICommand):
|
||||||
match cmd.cmd_type:
|
match cmd.cmd_type:
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Scenes/Maps/odyssey.tscn" type="PackedScene" id=1]
|
|
||||||
[ext_resource path="res://Actors/Player/Player.tscn" type="PackedScene" id=2]
|
|
||||||
[ext_resource path="res://Scenes/UI.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://Scenes/UI.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://Scenes/World.gd" type="Script" id=4]
|
[ext_resource path="res://Scenes/World.gd" type="Script" id=4]
|
||||||
[ext_resource path="res://Scenes/Game.gd" type="Script" id=5]
|
[ext_resource path="res://Scenes/Game.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://Scenes/Maps/runtime.tscn" type="PackedScene" id=7]
|
|
||||||
|
|
||||||
[node name="scene" type="Node"]
|
[node name="scene" type="Node"]
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
|
@ -13,18 +10,7 @@ script = ExtResource( 5 )
|
||||||
[node name="world" type="Node2D" parent="."]
|
[node name="world" type="Node2D" parent="."]
|
||||||
scale = Vector2( 2, 2 )
|
scale = Vector2( 2, 2 )
|
||||||
script = ExtResource( 4 )
|
script = ExtResource( 4 )
|
||||||
player_path = NodePath("player")
|
mapToLoad = 1
|
||||||
map_path = NodePath("odyssey")
|
|
||||||
|
|
||||||
[node name="runtime" parent="world" instance=ExtResource( 7 )]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="odyssey" parent="world" instance=ExtResource( 1 )]
|
|
||||||
|
|
||||||
[node name="player" parent="world" instance=ExtResource( 2 )]
|
|
||||||
position = Vector2( 206.017, 250.966 )
|
|
||||||
z_index = 10
|
|
||||||
is_controlled = true
|
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,8 @@ const ProbeElectricity = preload("res://Actors/Systems/Electricity/ElectricProbe
|
||||||
|
|
||||||
onready var tilemaps = [ $base, $cables, $floor, $walls ]
|
onready var tilemaps = [ $base, $cables, $floor, $walls ]
|
||||||
|
|
||||||
|
onready var pois = $pois
|
||||||
|
|
||||||
export var unlit = false setget set_unlit
|
export var unlit = false setget set_unlit
|
||||||
onready var darkness = $darkness
|
onready var darkness = $darkness
|
||||||
|
|
||||||
|
@ -73,3 +75,13 @@ func make_electric_probes(tilemap: TileMap, tile_name: String):
|
||||||
var probe = ProbeElectricity.instance()
|
var probe = ProbeElectricity.instance()
|
||||||
probe.position = coord
|
probe.position = coord
|
||||||
tilemap.add_child(probe)
|
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
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=16 format=2]
|
[gd_scene load_steps=17 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Graphics/tgstation/walls.tres" type="TileSet" id=1]
|
[ext_resource path="res://Graphics/tgstation/walls.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://Graphics/tgstation/1x1.tres" type="TileSet" id=2]
|
[ext_resource path="res://Graphics/tgstation/1x1.tres" type="TileSet" id=2]
|
||||||
|
@ -14,6 +14,7 @@
|
||||||
[ext_resource path="res://Actors/Objects/PowerStorage/PowerStorage.tscn" type="PackedScene" id=12]
|
[ext_resource path="res://Actors/Objects/PowerStorage/PowerStorage.tscn" type="PackedScene" id=12]
|
||||||
[ext_resource path="res://Graphics/tgstation/cables.tres" type="TileSet" id=13]
|
[ext_resource path="res://Graphics/tgstation/cables.tres" type="TileSet" id=13]
|
||||||
[ext_resource path="res://Actors/Objects/ElectricSocket/ElectricSocket.tscn" type="PackedScene" id=14]
|
[ext_resource path="res://Actors/Objects/ElectricSocket/ElectricSocket.tscn" type="PackedScene" id=14]
|
||||||
|
[ext_resource path="res://Actors/Meta/POI/Spawnpoints/Player.gd" type="Script" id=15]
|
||||||
|
|
||||||
[sub_resource type="CanvasItemMaterial" id=1]
|
[sub_resource type="CanvasItemMaterial" id=1]
|
||||||
light_mode = 1
|
light_mode = 1
|
||||||
|
@ -455,115 +456,91 @@ __meta__ = {
|
||||||
|
|
||||||
[node name="Lighttube" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 80, 144 )
|
position = Vector2( 80, 144 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube2" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube2" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 336, 144 )
|
position = Vector2( 336, 144 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube3" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube3" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 336, 368 )
|
position = Vector2( 336, 368 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube4" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube4" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 80, 368 )
|
position = Vector2( 80, 368 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube7" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube7" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -112, 144 )
|
position = Vector2( -112, 144 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube8" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube8" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -112, 368 )
|
position = Vector2( -112, 368 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube5" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube5" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 528, 368 )
|
position = Vector2( 528, 368 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube6" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube6" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 528, 144 )
|
position = Vector2( 528, 144 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube9" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube9" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 80, -48 )
|
position = Vector2( 80, -48 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube10" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube10" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 272, -48 )
|
position = Vector2( 272, -48 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube11" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube11" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 272, -208 )
|
position = Vector2( 272, -208 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube12" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube12" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -16, -208 )
|
position = Vector2( -16, -208 )
|
||||||
direction = 0
|
direction = 0
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube13" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube13" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -240, -208 )
|
position = Vector2( -240, -208 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube14" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube14" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -240, -48 )
|
position = Vector2( -240, -48 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube15" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube15" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 208, 112 )
|
position = Vector2( 208, 112 )
|
||||||
direction = 0
|
direction = 0
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube16" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube16" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 208, -16 )
|
position = Vector2( 208, -16 )
|
||||||
direction = 1
|
direction = 1
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube17" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube17" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 208, 400 )
|
position = Vector2( 208, 400 )
|
||||||
direction = 1
|
direction = 1
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube18" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube18" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 208, 528 )
|
position = Vector2( 208, 528 )
|
||||||
direction = 0
|
direction = 0
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube19" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube19" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 48, 560 )
|
position = Vector2( 48, 560 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube21" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube21" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -240, 560 )
|
position = Vector2( -240, 560 )
|
||||||
direction = 3
|
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube23" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube23" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( -240, 720 )
|
position = Vector2( -240, 720 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube20" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube20" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 272, 720 )
|
position = Vector2( 272, 720 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
|
||||||
[node name="Lighttube22" parent="lights" instance=ExtResource( 8 )]
|
[node name="Lighttube22" parent="lights" instance=ExtResource( 8 )]
|
||||||
position = Vector2( 80, 720 )
|
position = Vector2( 80, 720 )
|
||||||
direction = 2
|
direction = 2
|
||||||
lit = true
|
|
||||||
|
[node name="pois" type="Node2D" parent="."]
|
||||||
|
z_index = 999
|
||||||
|
|
||||||
|
[node name="SpawnpointPlayer" type="Node2D" parent="pois"]
|
||||||
|
position = Vector2( 208, 256 )
|
||||||
|
script = ExtResource( 15 )
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=14 format=2]
|
[gd_scene load_steps=15 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Graphics/tgstation/walls.tres" type="TileSet" id=1]
|
[ext_resource path="res://Graphics/tgstation/walls.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://Graphics/tgstation/1x1.tres" type="TileSet" id=2]
|
[ext_resource path="res://Graphics/tgstation/1x1.tres" type="TileSet" id=2]
|
||||||
|
@ -7,6 +7,7 @@
|
||||||
[ext_resource path="res://Scenes/Maps/runtime.gd" type="Script" id=5]
|
[ext_resource path="res://Scenes/Maps/runtime.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://Actors/Objects/Computer/Computer.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://Actors/Objects/Computer/Computer.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://Graphics/space.png" type="Texture" id=7]
|
[ext_resource path="res://Graphics/space.png" type="Texture" id=7]
|
||||||
|
[ext_resource path="res://Actors/Meta/POI/Spawnpoints/Player.gd" type="Script" id=8]
|
||||||
[ext_resource path="res://Graphics/tgstation/floor.tres" type="TileSet" id=9]
|
[ext_resource path="res://Graphics/tgstation/floor.tres" type="TileSet" id=9]
|
||||||
[ext_resource path="res://Actors/Objects/Engine/Engine.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://Actors/Objects/Engine/Engine.tscn" type="PackedScene" id=10]
|
||||||
[ext_resource path="res://Graphics/tgstation/base.tres" type="TileSet" id=11]
|
[ext_resource path="res://Graphics/tgstation/base.tres" type="TileSet" id=11]
|
||||||
|
@ -135,49 +136,41 @@ computer_type = 6
|
||||||
|
|
||||||
[node name="ElectricSocket4" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket4" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( -128, 160 )
|
position = Vector2( -128, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer6") ]
|
connectionPaths = [ NodePath("../Computer6") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket5" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket5" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( -96, 160 )
|
position = Vector2( -96, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer5") ]
|
connectionPaths = [ NodePath("../Computer5") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket6" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket6" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( -64, 160 )
|
position = Vector2( -64, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer") ]
|
connectionPaths = [ NodePath("../Computer") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket7" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket7" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( -32, 160 )
|
position = Vector2( -32, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer2") ]
|
connectionPaths = [ NodePath("../Computer2") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket8" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket8" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( 0, 160 )
|
position = Vector2( 0, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer3") ]
|
connectionPaths = [ NodePath("../Computer3") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket9" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket9" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( 32, 160 )
|
position = Vector2( 32, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer4") ]
|
connectionPaths = [ NodePath("../Computer4") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket10" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket10" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( 64, 160 )
|
position = Vector2( 64, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../Computer7") ]
|
connectionPaths = [ NodePath("../Computer7") ]
|
||||||
flow = 1
|
flow = 1
|
||||||
|
|
||||||
[node name="ElectricSocket3" parent="objects" instance=ExtResource( 13 )]
|
[node name="ElectricSocket3" parent="objects" instance=ExtResource( 13 )]
|
||||||
position = Vector2( 128, 160 )
|
position = Vector2( 128, 160 )
|
||||||
z_index = -8
|
|
||||||
connectionPaths = [ NodePath("../SMES2") ]
|
connectionPaths = [ NodePath("../SMES2") ]
|
||||||
|
|
||||||
[node name="lights" type="Node2D" parent="."]
|
[node name="lights" type="Node2D" parent="."]
|
||||||
|
@ -186,3 +179,10 @@ __meta__ = {
|
||||||
"_edit_group_": true,
|
"_edit_group_": true,
|
||||||
"_edit_lock_": true
|
"_edit_lock_": true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="pois" type="Node2D" parent="."]
|
||||||
|
z_index = 999
|
||||||
|
|
||||||
|
[node name="SpawnpointPlayer" type="Node2D" parent="pois"]
|
||||||
|
position = Vector2( 112, 272 )
|
||||||
|
script = ExtResource( 8 )
|
||||||
|
|
|
@ -2,13 +2,32 @@ extends Node2D
|
||||||
|
|
||||||
class_name GameWorld
|
class_name GameWorld
|
||||||
|
|
||||||
export(NodePath) var player_path
|
enum Map { RUNTIME, ODYSSEY }
|
||||||
export(NodePath) var map_path
|
|
||||||
|
|
||||||
onready var player = get_node(player_path) as Node2D
|
export(Map) var mapToLoad = Map.RUNTIME
|
||||||
onready var map = get_node(map_path) as GameMap
|
|
||||||
|
const runtimeRes = preload("res://Scenes/Maps/runtime.tscn")
|
||||||
|
const odysseyRes = preload("res://Scenes/Maps/odyssey.tscn")
|
||||||
|
const playerRes = preload("res://Actors/Player/Player.tscn")
|
||||||
|
|
||||||
|
var map = null
|
||||||
|
var player = null
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
match mapToLoad:
|
||||||
|
Map.RUNTIME:
|
||||||
|
map = runtimeRes.instance()
|
||||||
|
Map.ODYSSEY:
|
||||||
|
map = odysseyRes.instance()
|
||||||
|
add_child(map)
|
||||||
for tilemap in map.tilemaps:
|
for tilemap in map.tilemaps:
|
||||||
if tilemap is MapTiles:
|
if tilemap is MapTiles:
|
||||||
tilemap.set_occluder_origin(player)
|
tilemap.set_occluder_origin(player)
|
||||||
|
player = playerRes.instance()
|
||||||
|
player.is_controlled = true
|
||||||
|
var spawnpoints = map.get_pois(POIData.POIType.SpawnPoint, POIData.POIClass.Player)
|
||||||
|
if spawnpoints.size() > 0:
|
||||||
|
player.transform.origin = (spawnpoints[0] as Node2D).transform.origin
|
||||||
|
else:
|
||||||
|
print("Map does not have Player spawnpoint POI! Spawning at origin (very bad)")
|
||||||
|
add_child(player)
|
||||||
|
|
|
@ -74,6 +74,11 @@ _global_script_classes=[ {
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://Scenes/Rendering/Occluder.gd"
|
"path": "res://Scenes/Rendering/Occluder.gd"
|
||||||
}, {
|
}, {
|
||||||
|
"base": "Reference",
|
||||||
|
"class": "POIData",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://Classes/POI.gd"
|
||||||
|
}, {
|
||||||
"base": "Node",
|
"base": "Node",
|
||||||
"class": "PowerManager",
|
"class": "PowerManager",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
|
@ -89,6 +94,11 @@ _global_script_classes=[ {
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://Actors/Systems/Electricity/ElectricProbe.gd"
|
"path": "res://Actors/Systems/Electricity/ElectricProbe.gd"
|
||||||
}, {
|
}, {
|
||||||
|
"base": "Node2D",
|
||||||
|
"class": "SpawnpointPlayer",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://Actors/Meta/POI/Spawnpoints/Player.gd"
|
||||||
|
}, {
|
||||||
"base": "Reference",
|
"base": "Reference",
|
||||||
"class": "UICommand",
|
"class": "UICommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
|
@ -108,9 +118,11 @@ _global_script_class_icons={
|
||||||
"GameWorld": "",
|
"GameWorld": "",
|
||||||
"MapTiles": "",
|
"MapTiles": "",
|
||||||
"Occluder": "",
|
"Occluder": "",
|
||||||
|
"POIData": "",
|
||||||
"PowerManager": "",
|
"PowerManager": "",
|
||||||
"PowerNetwork": "",
|
"PowerNetwork": "",
|
||||||
"ProbeElectric": "",
|
"ProbeElectric": "",
|
||||||
|
"SpawnpointPlayer": "",
|
||||||
"UICommand": ""
|
"UICommand": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue