merge
This commit is contained in:
commit
cf49452467
@ -4,51 +4,191 @@ extends NPC
|
|||||||
export(NodePath) var _visibility_path: NodePath
|
export(NodePath) var _visibility_path: NodePath
|
||||||
export(int) var _player_follow_pill_level = 3
|
export(int) var _player_follow_pill_level = 3
|
||||||
|
|
||||||
|
onready var visibility_cone_mesh = get_node("Visibility/VisibilityCone")
|
||||||
|
|
||||||
|
const MAX_CMDS = 5 # maximum repeaded commands before Meldewesen gets piss
|
||||||
|
const CMD_DIFF_MS = 4000 # time in ms before new command
|
||||||
|
const VISIBILITY_CONE_ALPHA = 0.2
|
||||||
|
|
||||||
|
enum BEHAVIOR {
|
||||||
|
NORMAL = 0,
|
||||||
|
GO_WORK = 1,
|
||||||
|
GO_HOME = 2,
|
||||||
|
TAKE_PILLS = 3,
|
||||||
|
DO_JOB = 4,
|
||||||
|
ANGRY = 5
|
||||||
|
}
|
||||||
|
var _curMood # current set behavior
|
||||||
|
|
||||||
var _visibility: Area
|
var _visibility: Area
|
||||||
|
var _interactArea: Area
|
||||||
|
var _audioPlayer: AudioStreamPlayer3D
|
||||||
var _playerRef
|
var _playerRef
|
||||||
|
|
||||||
|
var _followingPlayer = false # true if Meldewesen finds player "suspicios" and follows
|
||||||
|
var _huntingPlayer = false # active if the Meldewesen wants to "catch" the player
|
||||||
|
var _seeingPlayer = false # as long as player is in visible range
|
||||||
|
var _lastSound = 0 # timestamp of last played message
|
||||||
|
var _countCmds = 0 # count of spoken commands -> after MAX_CMDS Meldewesen gets pissy
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
Logger.set_logger_level(Logger.LOG_LEVEL_FINE)
|
#Logger.set_logger_level(Logger.LOG_LEVEL_FINE)
|
||||||
_visibility = get_node(_visibility_path) as Area
|
|
||||||
|
|
||||||
if _visibility:
|
_audioPlayer = get_node("AudioStreamPlayer3D") as AudioStreamPlayer3D
|
||||||
_visibility.connect("body_entered", self, "_on_body_entered_visibility")
|
assert(null != _audioPlayer)
|
||||||
_visibility.connect("body_exited", self, "_on_body_exited_visibility")
|
|
||||||
|
_visibility = get_node(_visibility_path) as Area
|
||||||
|
assert(null != _visibility)
|
||||||
|
_visibility.connect("body_entered", self, "_on_body_entered_visibility")
|
||||||
|
_visibility.connect("body_exited", self, "_on_body_exited_visibility")
|
||||||
|
|
||||||
|
# setup collisions with player
|
||||||
|
var _interactArea = get_node("InteractArea") as Area
|
||||||
|
assert(null != _interactArea)
|
||||||
|
_interactArea.connect("area_entered", self, "_on_area_entered")
|
||||||
|
|
||||||
# TODO: does this implementation have to be that way?
|
# TODO: does this implementation have to be that way?
|
||||||
for player in get_tree().get_nodes_in_group("Player"):
|
for player in get_tree().get_nodes_in_group("Player"):
|
||||||
_playerRef = player
|
if player.is_class("KinematicBody"):
|
||||||
|
_playerRef = player
|
||||||
|
break
|
||||||
|
assert(null != _playerRef)
|
||||||
|
|
||||||
|
_set_behavior()
|
||||||
|
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
|
# movement
|
||||||
if current_target:
|
if current_target:
|
||||||
# stop following player if pill level is high enough and player is not in an illegal area
|
# continue following player after illegal action or low pill level
|
||||||
if Pills.get_round_level() > _player_follow_pill_level and _playerRef.Is_in_Illegal_Area() == false:
|
if _huntingPlayer or (_followingPlayer and Pills.get_round_level() <= _player_follow_pill_level):
|
||||||
Logger.info("player pill level ok and no illegal actions detected!")
|
|
||||||
current_target = null
|
|
||||||
# otherwise set new position of player
|
|
||||||
else:
|
|
||||||
current_target = _playerRef.transform.origin
|
current_target = _playerRef.transform.origin
|
||||||
|
# stop following player if pill level is high enough and player is not in an illegal area
|
||||||
|
else:
|
||||||
|
Logger.info("player pill level ok and no illegal actions detected!")
|
||||||
|
_followingPlayer = false
|
||||||
|
current_target = null
|
||||||
|
|
||||||
|
if _seeingPlayer:
|
||||||
|
# logic
|
||||||
|
_set_behavior()
|
||||||
|
|
||||||
|
# audio
|
||||||
|
if _audioPlayer.stream != null:
|
||||||
|
var cur_time = OS.get_ticks_msec()
|
||||||
|
if cur_time - _lastSound > CMD_DIFF_MS:
|
||||||
|
_audioPlayer.play()
|
||||||
|
_lastSound = cur_time
|
||||||
|
_countCmds += 1
|
||||||
|
|
||||||
|
|
||||||
func _on_body_entered_visibility(body: PhysicsBody):
|
func _on_area_entered (area: Area):
|
||||||
|
if area.is_in_group("Player") and _huntingPlayer:
|
||||||
|
Logger.info("caught player!")
|
||||||
|
Daytime.emit_signal("respawn")
|
||||||
|
|
||||||
|
|
||||||
|
func change_visibility_cone_color(new_color: Color):
|
||||||
|
visibility_cone_mesh.get_surface_material(0).albedo_color = new_color
|
||||||
|
visibility_cone_mesh.get_surface_material(0).albedo_color.a = VISIBILITY_CONE_ALPHA
|
||||||
|
|
||||||
|
|
||||||
|
func _load_sound ():
|
||||||
|
match _curMood:
|
||||||
|
BEHAVIOR.NORMAL:
|
||||||
|
_audioPlayer.stream = null
|
||||||
|
BEHAVIOR.GO_WORK:
|
||||||
|
Logger.info("say go to work")
|
||||||
|
_audioPlayer.stream = load("res://Resources/Audio/to-work.wav")
|
||||||
|
BEHAVIOR.GO_HOME:
|
||||||
|
Logger.info("say go home")
|
||||||
|
_audioPlayer.stream = load("res://Resources/Audio/go-home.wav")
|
||||||
|
BEHAVIOR.TAKE_PILLS:
|
||||||
|
Logger.info("say take your pills")
|
||||||
|
_audioPlayer.stream = load("res://Resources/Audio/take-pills.wav")
|
||||||
|
BEHAVIOR.DO_JOB:
|
||||||
|
Logger.info("say do your job")
|
||||||
|
_audioPlayer.stream = load("res://Resources/Audio/do-job.wav")
|
||||||
|
BEHAVIOR.ANGRY:
|
||||||
|
Logger.info("say stop!")
|
||||||
|
_audioPlayer.stream = load("res://Resources/Audio/Stop you violated the law.wav")
|
||||||
|
|
||||||
|
|
||||||
|
func _set_behavior ():
|
||||||
|
if _huntingPlayer == false:
|
||||||
|
var reason = null
|
||||||
|
var daytime = Daytime.get_time()
|
||||||
|
if _playerRef.IsHunted: # player is already marked by another Meldewesen
|
||||||
|
reason = "player is haunted"
|
||||||
|
elif _playerRef.is_in_illegalzone(): # player is in illegal area
|
||||||
|
reason = "player is haunted in illegal area"
|
||||||
|
elif Pills.get_round_level() == 0: # player has taken no pills in a while
|
||||||
|
reason = "player's pill level is zero"
|
||||||
|
elif _playerRef.IsOutside and daytime > Daytime.WORK_TIME and daytime < Daytime.SLEEP_TIME: # outside during WORK_TIME
|
||||||
|
reason = "player outside during worktime"
|
||||||
|
#elif _playerRef.IsInFactory and daytime < Daytime.WORK_TIME and daytime > Daytime.SLEEP_TIME: # at work after out of WORK_TIME
|
||||||
|
# EDIT: too early at work is not an angry reason :p
|
||||||
|
elif _playerRef.IsInFactory and daytime > Daytime.SLEEP_TIME: # at work after out of WORK_TIME
|
||||||
|
reason = "player in factory out of worktime"
|
||||||
|
elif _countCmds > MAX_CMDS: # after MAX_CMDS repeats of the same command
|
||||||
|
reason = "player is seemingly not coorperativ"
|
||||||
|
|
||||||
|
# mark player for all other Meldewesen if seen during illegal action
|
||||||
|
if reason != null:
|
||||||
|
Logger.info("catch player! reason: " + reason)
|
||||||
|
_huntingPlayer = true
|
||||||
|
_playerRef.IsHunted = true
|
||||||
|
change_visibility_cone_color(Color.red)
|
||||||
|
|
||||||
|
if _followingPlayer == false:
|
||||||
|
# If the player didn't take enough pills lately, they're suspicious -> following
|
||||||
|
if Pills.get_round_level() <= _player_follow_pill_level:
|
||||||
|
Logger.info("The player's pill level is too low - following!")
|
||||||
|
_followingPlayer = true
|
||||||
|
change_visibility_cone_color(Color.yellowgreen)
|
||||||
|
|
||||||
|
if _huntingPlayer or _followingPlayer:
|
||||||
|
current_target = _playerRef.transform.origin
|
||||||
|
else:
|
||||||
|
change_visibility_cone_color(Color.green)
|
||||||
|
|
||||||
|
var mood = BEHAVIOR.NORMAL
|
||||||
|
var daytime = Daytime.get_time()
|
||||||
|
if _playerRef.IsHunted:
|
||||||
|
mood = BEHAVIOR.ANGRY
|
||||||
|
# do your job
|
||||||
|
elif _playerRef.is_in_workzone():
|
||||||
|
mood = BEHAVIOR.DO_JOB
|
||||||
|
# take your pills
|
||||||
|
elif Pills.get_level() < Pills.get_max()*0.5:
|
||||||
|
mood = BEHAVIOR.TAKE_PILLS
|
||||||
|
# go to work
|
||||||
|
elif daytime < Daytime.WORK_TIME:
|
||||||
|
mood = BEHAVIOR.GO_WORK
|
||||||
|
# go home
|
||||||
|
elif daytime > Daytime.SLEEP_TIME:
|
||||||
|
mood = BEHAVIOR.GO_HOME
|
||||||
|
|
||||||
|
if mood != _curMood:
|
||||||
|
Logger.info("new mood: " + BEHAVIOR.keys()[mood] + " with cntcmd: " + String(_countCmds))
|
||||||
|
_countCmds = 0
|
||||||
|
_curMood = mood
|
||||||
|
_load_sound()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_entered_visibility (body: PhysicsBody):
|
||||||
#Logger.trace("Meldewesen seeing %s" % [body])
|
#Logger.trace("Meldewesen seeing %s" % [body])
|
||||||
|
|
||||||
if body.is_in_group("Player"):
|
if body.is_in_group("Player"):
|
||||||
Logger.info("Seeing player!")
|
Logger.info("Seeing player!")
|
||||||
|
_seeingPlayer = true
|
||||||
|
|
||||||
# check if player is in illegal area
|
_set_behavior()
|
||||||
if _playerRef.Is_in_Illegal_Area():
|
|
||||||
Logger.info("player is in illegal area - following!")
|
|
||||||
current_target = body.transform.origin
|
|
||||||
# If the player didn't take enough pills lately, they're suspicious -> Run towards them!
|
|
||||||
elif Pills.get_round_level() <= _player_follow_pill_level:
|
|
||||||
Logger.info("The player's pill level is too low - following!")
|
|
||||||
current_target = body.transform.origin
|
|
||||||
|
|
||||||
|
|
||||||
func _on_body_exited_visibility(body: PhysicsBody):
|
func _on_body_exited_visibility(body: PhysicsBody):
|
||||||
if body.is_in_group("Player"):
|
if body.is_in_group("Player"):
|
||||||
Logger.info("Stopped seeing player!")
|
Logger.info("Stopped seeing player!")
|
||||||
current_target = null
|
_seeingPlayer = false
|
||||||
|
_countCmds = 0
|
||||||
|
if _huntingPlayer == false and _followingPlayer == false:
|
||||||
|
current_target = null
|
||||||
|
File diff suppressed because one or more lines are too long
8
Characters/Meldewesen/VisibilityConeMaterial.tres
Normal file
8
Characters/Meldewesen/VisibilityConeMaterial.tres
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="SpatialMaterial" format=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
flags_transparent = true
|
||||||
|
params_cull_mode = 2
|
||||||
|
albedo_color = Color( 1, 0, 0, 0.329412 )
|
||||||
|
metallic = 0.44
|
||||||
|
roughness = 0.58
|
@ -3,6 +3,7 @@ class_name NPC
|
|||||||
|
|
||||||
|
|
||||||
export(float) var turn_speed = 2.5
|
export(float) var turn_speed = 2.5
|
||||||
|
export(float) var speed = 8
|
||||||
|
|
||||||
var current_target
|
var current_target
|
||||||
var current_look_target
|
var current_look_target
|
||||||
@ -20,6 +21,13 @@ func _process(delta):
|
|||||||
|
|
||||||
if diff.length() > 0.1:
|
if diff.length() > 0.1:
|
||||||
look_at(transform.origin + target, Vector3.UP)
|
look_at(transform.origin + target, Vector3.UP)
|
||||||
|
|
||||||
|
if current_target:
|
||||||
|
# Move towards the current goal
|
||||||
|
var direction_normalized: Vector3 = (current_target - transform.origin).normalized()
|
||||||
|
|
||||||
|
look_towards(direction_normalized)
|
||||||
|
move_towards(direction_normalized * speed)
|
||||||
|
|
||||||
|
|
||||||
func set_position(position: Vector3):
|
func set_position(position: Vector3):
|
||||||
|
@ -32,11 +32,28 @@ var _vel = Vector3()
|
|||||||
var _is_sprinting : bool
|
var _is_sprinting : bool
|
||||||
var _illegal_areas : int
|
var _illegal_areas : int
|
||||||
var _save_areas : int
|
var _save_areas : int
|
||||||
|
var _work_areas : int
|
||||||
var _prev_look
|
var _prev_look
|
||||||
|
|
||||||
# TODO: move to global
|
|
||||||
var _inventory: Control
|
var _inventory: Control
|
||||||
|
|
||||||
|
# public properties
|
||||||
|
#var IsSuspicios # not needed > Meldewesen handles themselves
|
||||||
|
export(bool) var IsHunted # player is beeing flagged if one Meldewesen sees an illegal action
|
||||||
|
export(bool) var IsOutside = true # active while player is not in factory
|
||||||
|
export(bool) var IsInFactory = false # only active in factory scene
|
||||||
|
export(bool) var IsInLabyrinth = false
|
||||||
|
|
||||||
|
func is_in_illegalzone ():
|
||||||
|
return _illegal_areas > 0
|
||||||
|
|
||||||
|
|
||||||
|
func is_in_savezone ():
|
||||||
|
return _save_areas > 0
|
||||||
|
|
||||||
|
|
||||||
|
func is_in_workzone ():
|
||||||
|
return _work_areas > 0
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# Assign child node variables
|
# Assign child node variables
|
||||||
@ -62,6 +79,11 @@ func _ready():
|
|||||||
|
|
||||||
_inventory = get_node("HUD")
|
_inventory = get_node("HUD")
|
||||||
|
|
||||||
|
# Set special fast time when in labyrinth
|
||||||
|
if IsInLabyrinth:
|
||||||
|
Daytime.increase_per_second = 100
|
||||||
|
Pills._decrease_per_second = 0.8
|
||||||
|
|
||||||
# setup collisions with Meldewesen
|
# setup collisions with Meldewesen
|
||||||
var area = get_node("InteractArea") as Area
|
var area = get_node("InteractArea") as Area
|
||||||
assert(null != area)
|
assert(null != area)
|
||||||
@ -69,6 +91,10 @@ func _ready():
|
|||||||
area.connect("area_exited", self, "_on_area_exited")
|
area.connect("area_exited", self, "_on_area_exited")
|
||||||
|
|
||||||
Daytime.connect("respawn", self, "_on_respawn")
|
Daytime.connect("respawn", self, "_on_respawn")
|
||||||
|
|
||||||
|
var player = get_node("AudioStreamPlayer3D")
|
||||||
|
player.stream = load("res://Resources/Audio/cock.wav")
|
||||||
|
player.play()
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
@ -180,28 +206,28 @@ func _input(event):
|
|||||||
_camera.rotation_degrees.x = clamp(_camera.rotation_degrees.x, -70, 70)
|
_camera.rotation_degrees.x = clamp(_camera.rotation_degrees.x, -70, 70)
|
||||||
|
|
||||||
func _on_area_entered (area: Area):
|
func _on_area_entered (area: Area):
|
||||||
if area.is_in_group("Enemy"):
|
if area.is_in_group("Forbidden"):
|
||||||
Logger.info("ermahgerd they touched :-o !")
|
|
||||||
if _illegal_areas > 0: # or Pills.get_level() == 0: #< Pills.get_max() * 0.5:
|
|
||||||
# TODO: check why this does not work as intended:
|
|
||||||
#var player = AudioStreamPlayer3D.new()
|
|
||||||
#var audio_file = "res://Resources/Audio/dino-eat.wav"
|
|
||||||
#player.stream = load("res://Resources/Audio/dino-eat.wav")
|
|
||||||
#add_child(player)
|
|
||||||
#Logger.info("should play sound again?")
|
|
||||||
#player.play()
|
|
||||||
#remove_child(player)
|
|
||||||
#player. queue_free()
|
|
||||||
get_node("AudioStreamPlayer3D").play()
|
|
||||||
|
|
||||||
yield(get_node("AudioStreamPlayer3D"), "finished")
|
|
||||||
_on_respawn() # TODO: also raise if Meldewesen is looking at player and pill level reaches treshold!
|
|
||||||
elif area.is_in_group("Forbidden"):
|
|
||||||
Logger.info("entering forbidden area!")
|
Logger.info("entering forbidden area!")
|
||||||
_illegal_areas += 1
|
_illegal_areas += 1
|
||||||
elif area.is_in_group("Savehouse"):
|
elif area.is_in_group("Savehouse"):
|
||||||
Logger.info("entering save area!")
|
Logger.info("entering save area!")
|
||||||
_save_areas += 1
|
_save_areas += 1
|
||||||
|
elif area.is_in_group("Workwork"):
|
||||||
|
Logger.info("entering work area!")
|
||||||
|
_work_areas += 1
|
||||||
|
elif area.is_in_group("FactoryEntry"):
|
||||||
|
Logger.info("entering factory")
|
||||||
|
IsInFactory = true
|
||||||
|
IsOutside = false
|
||||||
|
# TODO: move not change_scene!
|
||||||
|
get_tree().change_scene("res://Level/InFactory.tscn")
|
||||||
|
# TODO: other entries
|
||||||
|
elif area.is_in_group("OutsideEntry"):
|
||||||
|
Logger.info("leaving factory")
|
||||||
|
IsInFactory = false
|
||||||
|
IsOutside = true
|
||||||
|
# TODO: move not change_scene!
|
||||||
|
get_tree().change_scene("res://Level/World.tscn")
|
||||||
|
|
||||||
|
|
||||||
func _on_area_exited (area: Area):
|
func _on_area_exited (area: Area):
|
||||||
@ -211,28 +237,30 @@ func _on_area_exited (area: Area):
|
|||||||
elif area.is_in_group("Savehouse"):
|
elif area.is_in_group("Savehouse"):
|
||||||
Logger.info("leaving save area!")
|
Logger.info("leaving save area!")
|
||||||
_save_areas -= 1
|
_save_areas -= 1
|
||||||
|
elif area.is_in_group("Workwork"):
|
||||||
|
Logger.info("leaving work area!")
|
||||||
|
_work_areas -= 1
|
||||||
|
|
||||||
|
|
||||||
func _on_respawn ():
|
func _on_respawn ():
|
||||||
Logger.info("respawning")
|
Logger.info("respawning")
|
||||||
# fade to black and restart scene
|
# fade to black and restart scene
|
||||||
_inventory.hide()
|
_inventory.hide() # disable hud for the time of respawn animation
|
||||||
_animationFadeOut.play("FadeOut")
|
|
||||||
yield(_animationFadeOut, "animation_finished")
|
if not IsInLabyrinth:
|
||||||
_animationFadeOut.seek(0, true)
|
_animationFadeOut.play("FadeOut")
|
||||||
|
yield(_animationFadeOut, "animation_finished")
|
||||||
|
_animationFadeOut.seek(0, true)
|
||||||
|
|
||||||
# reset values
|
# reset values
|
||||||
Pills._set_level(Pills.get_max())
|
|
||||||
Daytime._set_time(0)
|
Daytime._set_time(0)
|
||||||
|
|
||||||
Logger.info("save areas: " + String(_save_areas))
|
Logger.info("save areas: " + String(_save_areas))
|
||||||
if _save_areas < 1:
|
|
||||||
|
if _save_areas < 1 and not IsInLabyrinth:
|
||||||
Logger.info("reload scene")
|
Logger.info("reload scene")
|
||||||
|
|
||||||
|
Pills._set_level(Pills.get_max())
|
||||||
get_tree().reload_current_scene()
|
get_tree().reload_current_scene()
|
||||||
|
|
||||||
_inventory.show()
|
_inventory.show() # enable hud again
|
||||||
|
|
||||||
|
|
||||||
func Is_in_Illegal_Area ():
|
|
||||||
#Logger.info("illegal areas: " + String(_illegal_areas))
|
|
||||||
return _illegal_areas > 0
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=23 format=2]
|
[gd_scene load_steps=22 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Characters/Player/Player.gd" type="Script" id=1]
|
[ext_resource path="res://Characters/Player/Player.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://Characters/Player/PillCameras.gd" type="Script" id=2]
|
[ext_resource path="res://Characters/Player/PillCameras.gd" type="Script" id=2]
|
||||||
@ -6,12 +6,11 @@
|
|||||||
[ext_resource path="res://Shaders/FadeOut.shader" type="Shader" id=4]
|
[ext_resource path="res://Shaders/FadeOut.shader" type="Shader" id=4]
|
||||||
[ext_resource path="res://Shaders/Masks/from_center.png" type="Texture" id=5]
|
[ext_resource path="res://Shaders/Masks/from_center.png" type="Texture" id=5]
|
||||||
[ext_resource path="res://Resources/Audio/dino-eat.wav" type="AudioStream" id=6]
|
[ext_resource path="res://Resources/Audio/dino-eat.wav" type="AudioStream" id=6]
|
||||||
[ext_resource path="res://Resources/Audio/Stop you violated the law.wav" type="AudioStream" id=7]
|
[ext_resource path="res://Characters/Player/Footsteps.gd" type="Script" id=7]
|
||||||
[ext_resource path="res://Characters/Player/Footsteps.gd" type="Script" id=8]
|
[ext_resource path="res://Resources/Audio/Step.wav" type="AudioStream" id=8]
|
||||||
[ext_resource path="res://Resources/Audio/Step.wav" type="AudioStream" id=9]
|
[ext_resource path="res://Characters/Player/UI/UI.tscn" type="PackedScene" id=9]
|
||||||
[ext_resource path="res://Characters/Player/UI/UI.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://Characters/Player/PillTaker.gd" type="Script" id=10]
|
||||||
[ext_resource path="res://Characters/Player/PillTaker.gd" type="Script" id=11]
|
[ext_resource path="res://Level/Interactables/Pills/Pills.tscn" type="PackedScene" id=11]
|
||||||
[ext_resource path="res://Level/Interactables/Pills/Pills.tscn" type="PackedScene" id=12]
|
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id=1]
|
[sub_resource type="ViewportTexture" id=1]
|
||||||
viewport_path = NodePath("Body/PillCameras/MaskedView")
|
viewport_path = NodePath("Body/PillCameras/MaskedView")
|
||||||
@ -35,7 +34,9 @@ shader_param/mask = ExtResource( 5 )
|
|||||||
|
|
||||||
[sub_resource type="CylinderShape" id=5]
|
[sub_resource type="CylinderShape" id=5]
|
||||||
|
|
||||||
[sub_resource type="Animation" id=6]
|
[sub_resource type="CylinderShape" id=6]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=7]
|
||||||
length = 0.8
|
length = 0.8
|
||||||
loop = true
|
loop = true
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
@ -68,7 +69,7 @@ tracks/1/keys = {
|
|||||||
} ]
|
} ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=7]
|
[sub_resource type="Animation" id=8]
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath("PillTaker/Pills:visible")
|
tracks/0/path = NodePath("PillTaker/Pills:visible")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
@ -134,8 +135,7 @@ tracks/4/keys = {
|
|||||||
} ]
|
} ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=8]
|
[sub_resource type="Animation" id=9]
|
||||||
resource_name = "FadeOut"
|
|
||||||
length = 2.0
|
length = 2.0
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
||||||
@ -150,12 +150,10 @@ tracks/0/keys = {
|
|||||||
"values": [ 1.0, 0.5, 0.7, 0.0 ]
|
"values": [ 1.0, 0.5, 0.7, 0.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="AudioStreamRandomPitch" id=9]
|
[sub_resource type="AudioStreamRandomPitch" id=10]
|
||||||
audio_stream = ExtResource( 9 )
|
audio_stream = ExtResource( 8 )
|
||||||
random_pitch = 1.3
|
random_pitch = 1.3
|
||||||
|
|
||||||
[sub_resource type="CylinderShape" id=10]
|
|
||||||
|
|
||||||
[node name="Player" type="KinematicBody" groups=[
|
[node name="Player" type="KinematicBody" groups=[
|
||||||
"Player",
|
"Player",
|
||||||
]]
|
]]
|
||||||
@ -172,6 +170,7 @@ camera_nodepath = NodePath("Body/PillCameras")
|
|||||||
[node name="Body" type="Spatial" parent="."]
|
[node name="Body" type="Spatial" parent="."]
|
||||||
|
|
||||||
[node name="PillCameras" type="Spatial" parent="Body"]
|
[node name="PillCameras" type="Spatial" parent="Body"]
|
||||||
|
editor/display_folded = true
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
@ -184,10 +183,10 @@ cast_to = Vector3( 0, 0, 2 )
|
|||||||
current = true
|
current = true
|
||||||
|
|
||||||
[node name="TrueView" type="Viewport" parent="Body/PillCameras"]
|
[node name="TrueView" type="Viewport" parent="Body/PillCameras"]
|
||||||
editor/display_folded = true
|
|
||||||
size = Vector2( 1024, 600 )
|
size = Vector2( 1024, 600 )
|
||||||
render_target_update_mode = 3
|
render_target_update_mode = 3
|
||||||
audio_listener_enable_3d = true
|
audio_listener_enable_3d = true
|
||||||
|
shadow_atlas_size = 4
|
||||||
|
|
||||||
[node name="TrueCamera" type="Camera" parent="Body/PillCameras/TrueView"]
|
[node name="TrueCamera" type="Camera" parent="Body/PillCameras/TrueView"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
|
||||||
@ -195,10 +194,10 @@ cull_mask = 2
|
|||||||
current = true
|
current = true
|
||||||
|
|
||||||
[node name="MaskedView" type="Viewport" parent="Body/PillCameras"]
|
[node name="MaskedView" type="Viewport" parent="Body/PillCameras"]
|
||||||
editor/display_folded = true
|
|
||||||
size = Vector2( 1024, 600 )
|
size = Vector2( 1024, 600 )
|
||||||
render_target_update_mode = 3
|
render_target_update_mode = 3
|
||||||
audio_listener_enable_3d = true
|
audio_listener_enable_3d = true
|
||||||
|
shadow_atlas_size = 4
|
||||||
|
|
||||||
[node name="MaskedCamera" type="Camera" parent="Body/PillCameras/MaskedView"]
|
[node name="MaskedCamera" type="Camera" parent="Body/PillCameras/MaskedView"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
|
||||||
@ -226,24 +225,31 @@ remote_path = NodePath("../TrueView/TrueCamera")
|
|||||||
remote_path = NodePath("../MaskedView/MaskedCamera")
|
remote_path = NodePath("../MaskedView/MaskedCamera")
|
||||||
|
|
||||||
[node name="Collider" type="CollisionShape" parent="."]
|
[node name="Collider" type="CollisionShape" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 0.8, 0, 1, 0 )
|
||||||
shape = SubResource( 5 )
|
shape = SubResource( 5 )
|
||||||
|
|
||||||
|
[node name="InteractArea" type="Area" parent="." groups=[
|
||||||
|
"Player",
|
||||||
|
]]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="InteractArea"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||||
|
shape = SubResource( 6 )
|
||||||
|
|
||||||
[node name="WalkAnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="WalkAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
autoplay = "Walk"
|
autoplay = "Walk"
|
||||||
anims/Walk = SubResource( 6 )
|
anims/Walk = SubResource( 7 )
|
||||||
|
|
||||||
[node name="PillAnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="PillAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
playback_speed = 2.0
|
playback_speed = 2.0
|
||||||
anims/PillTaking = SubResource( 7 )
|
anims/PillTaking = SubResource( 8 )
|
||||||
|
|
||||||
[node name="FadeOutAnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="FadeOutAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
root_node = NodePath("../Body/PillCameras/ScreenTextureFadeOut")
|
root_node = NodePath("../Body/PillCameras/ScreenTextureFadeOut")
|
||||||
playback_speed = 2.0
|
playback_speed = 2.0
|
||||||
anims/FadeOut = SubResource( 8 )
|
anims/FadeOut = SubResource( 9 )
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
||||||
stream = ExtResource( 7 )
|
|
||||||
|
|
||||||
[node name="Eating" type="Spatial" parent="."]
|
[node name="Eating" type="Spatial" parent="."]
|
||||||
editor/display_folded = true
|
editor/display_folded = true
|
||||||
@ -252,28 +258,22 @@ editor/display_folded = true
|
|||||||
stream = ExtResource( 6 )
|
stream = ExtResource( 6 )
|
||||||
|
|
||||||
[node name="Footsteps" type="Spatial" parent="."]
|
[node name="Footsteps" type="Spatial" parent="."]
|
||||||
script = ExtResource( 8 )
|
script = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="Footstep1" type="AudioStreamPlayer3D" parent="Footsteps"]
|
[node name="Footstep1" type="AudioStreamPlayer3D" parent="Footsteps"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 )
|
||||||
stream = SubResource( 9 )
|
stream = SubResource( 10 )
|
||||||
unit_db = -25.0
|
unit_db = -25.0
|
||||||
pitch_scale = 1.5
|
pitch_scale = 1.5
|
||||||
|
|
||||||
[node name="HUD" parent="." instance=ExtResource( 10 )]
|
[node name="HUD" parent="." instance=ExtResource( 9 )]
|
||||||
|
|
||||||
[node name="PillTaker" type="Spatial" parent="."]
|
[node name="PillTaker" type="Spatial" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||||
script = ExtResource( 11 )
|
script = ExtResource( 10 )
|
||||||
|
|
||||||
[node name="Pills" parent="PillTaker" instance=ExtResource( 12 )]
|
[node name="Pills" parent="PillTaker" instance=ExtResource( 11 )]
|
||||||
transform = Transform( 0.1, 0, 0, 0, -4.37114e-009, 0.1, 0, -0.1, -4.37114e-009, 0, 0.7, 0 )
|
transform = Transform( 0.1, 0, 0, 0, -4.37114e-009, 0.1, 0, -0.1, -4.37114e-009, 0, 0.7, 0 )
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="InteractArea" type="Area" parent="."]
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="InteractArea"]
|
|
||||||
transform = Transform( 1.2, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 1, 0 )
|
|
||||||
shape = SubResource( 10 )
|
|
||||||
|
|
||||||
[editable path="HUD"]
|
[editable path="HUD"]
|
||||||
|
@ -26,7 +26,6 @@ func _ready():
|
|||||||
|
|
||||||
func add_item (name):
|
func add_item (name):
|
||||||
Logger.info("Adding item \"" + name + "\" to inventory")
|
Logger.info("Adding item \"" + name + "\" to inventory")
|
||||||
#TODO: global member for inventory?
|
|
||||||
var text
|
var text
|
||||||
if name == "Key":
|
if name == "Key":
|
||||||
text = _keyTexture
|
text = _keyTexture
|
||||||
@ -46,4 +45,5 @@ func _process(_delta):
|
|||||||
_labelDayTime.text = "dayTime: " + String(val) + " - %02d:%02d" % [val/60%24, val%60]
|
_labelDayTime.text = "dayTime: " + String(val) + " - %02d:%02d" % [val/60%24, val%60]
|
||||||
_dayTime.value = Daytime.get_time()
|
_dayTime.value = Daytime.get_time()
|
||||||
|
|
||||||
_dayTimeVisual.rect_rotation = (val/_dayTime.max_value) * 360 #pivot offset x=67, y = 7
|
#_dayTimeVisual.rect_rotation = (val/_dayTime.max_value) * 360 #pivot offset x=67, y = 7
|
||||||
|
_dayTimeVisual.rect_rotation = (val/_dayTime.max_value) * 180
|
@ -68,6 +68,7 @@ margin_left = 466.0
|
|||||||
margin_top = -82.0
|
margin_top = -82.0
|
||||||
margin_right = 646.0
|
margin_right = 646.0
|
||||||
margin_bottom = 98.0
|
margin_bottom = 98.0
|
||||||
|
rect_rotation = 180.0
|
||||||
rect_pivot_offset = Vector2( 90, 90 )
|
rect_pivot_offset = Vector2( 90, 90 )
|
||||||
texture = ExtResource( 4 )
|
texture = ExtResource( 4 )
|
||||||
expand = true
|
expand = true
|
||||||
|
@ -7,7 +7,6 @@ var _current_path_index
|
|||||||
|
|
||||||
var _arrived_distance_threshold = 0.1
|
var _arrived_distance_threshold = 0.1
|
||||||
|
|
||||||
export(float) var speed = 8
|
|
||||||
export(NodePath) var body_nodepath
|
export(NodePath) var body_nodepath
|
||||||
|
|
||||||
var navigation: Navigation
|
var navigation: Navigation
|
||||||
@ -48,7 +47,7 @@ func _process(delta):
|
|||||||
var direction_normalized: Vector3 = (current_goal - _get_body_position()).normalized()
|
var direction_normalized: Vector3 = (current_goal - _get_body_position()).normalized()
|
||||||
|
|
||||||
body.look_towards(direction_normalized)
|
body.look_towards(direction_normalized)
|
||||||
body.move_towards(direction_normalized * speed)
|
body.move_towards(direction_normalized * body.speed)
|
||||||
|
|
||||||
|
|
||||||
# Returns the point we should currently be moving towards
|
# Returns the point we should currently be moving towards
|
||||||
|
23
Characters/Worker/Worker.gd
Normal file
23
Characters/Worker/Worker.gd
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
extends NPC
|
||||||
|
|
||||||
|
|
||||||
|
var _interactArea: Area
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
#Logger.set_logger_level(Logger.LOG_LEVEL_FINE)
|
||||||
|
|
||||||
|
var _interactArea = get_node("InteractArea") as Area
|
||||||
|
assert(null != _interactArea)
|
||||||
|
_interactArea.connect("area_entered", self, "_on_area_entered")
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
# TODO: movement
|
||||||
|
#if current_target: # should not be needed -> handled per navigation path
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_entered (area: Area):
|
||||||
|
if area.is_in_group("FactoryEntry"):
|
||||||
|
# despawn
|
||||||
|
queue_free()
|
||||||
|
pass
|
48
Characters/Worker/Worker.tscn
Normal file
48
Characters/Worker/Worker.tscn
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Characters/Worker/Worker.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id=1]
|
||||||
|
top_radius = 0.8
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id=2]
|
||||||
|
top_radius = 0.8
|
||||||
|
bottom_radius = 0.001
|
||||||
|
|
||||||
|
[sub_resource type="PrismMesh" id=3]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape" id=4]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape" id=5]
|
||||||
|
|
||||||
|
[node name="Worker" type="KinematicBody"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="Meshes" type="Spatial" parent="."]
|
||||||
|
|
||||||
|
[node name="TrueAppearance" type="MeshInstance" parent="Meshes"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||||
|
layers = 2
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="MaskedAppearance" type="MeshInstance" parent="Meshes"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||||
|
mesh = SubResource( 2 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="Meshes"]
|
||||||
|
transform = Transform( 0.1, 0, 0, 0, -4.37114e-009, 0.1, 0, -0.1, -4.37114e-009, 0, 1.8, -0.9 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 3 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="Collider" type="CollisionShape" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||||
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
|
[node name="InteractArea" type="Area" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="InteractArea"]
|
||||||
|
transform = Transform( 1.2, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 1, 0 )
|
||||||
|
shape = SubResource( 5 )
|
@ -1,9 +1,12 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
const _increase_per_second: float = 0.0 #0.5
|
|
||||||
const _max: int = 1440 # 24 hour + 60 mins
|
const _max: int = 1440 # 24 hour + 60 mins
|
||||||
|
|
||||||
|
const WORK_TIME = _max * 0.3
|
||||||
|
const SLEEP_TIME = _max * 0.6
|
||||||
|
|
||||||
var _time: float setget _set_time, get_time
|
var _time: float setget _set_time, get_time
|
||||||
|
var increase_per_second: float = 5.0
|
||||||
|
|
||||||
signal respawn
|
signal respawn
|
||||||
|
|
||||||
@ -22,7 +25,7 @@ func get_max () -> int:
|
|||||||
|
|
||||||
func _process (delta: float) -> void:
|
func _process (delta: float) -> void:
|
||||||
# continually increases daytime
|
# continually increases daytime
|
||||||
_set_time(_time + _increase_per_second * delta)
|
_set_time(_time + increase_per_second * delta)
|
||||||
if _time >= _max:
|
if _time >= _max:
|
||||||
_time = 0
|
_time = 0
|
||||||
emit_signal("respawn")
|
emit_signal("respawn")
|
||||||
|
@ -3,7 +3,7 @@ extends Node
|
|||||||
|
|
||||||
var _level: float setget _set_level, get_level
|
var _level: float setget _set_level, get_level
|
||||||
var _min: float = 0.0
|
var _min: float = 0.0
|
||||||
var _max: float = 7.0
|
var _max: float = 6.0
|
||||||
var _decrease_per_second: float = 0.2
|
var _decrease_per_second: float = 0.2
|
||||||
var _pill_add_amount: float = 2.0
|
var _pill_add_amount: float = 2.0
|
||||||
|
|
||||||
|
52
Level/Buildings/DoorWall.tscn
Normal file
52
Level/Buildings/DoorWall.tscn
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Level/Interactables/Door/Door.tscn" type="PackedScene" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="CubeMesh" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape" id=2]
|
||||||
|
|
||||||
|
[node name="DoorWall" type="Spatial"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2 )
|
||||||
|
|
||||||
|
[node name="WallPart1" type="StaticBody" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
transform = Transform( 2, 0, 0, 0, 1.5, 0, 0, 0, 0.2, -4, 1.5, 0 )
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="WallPart1"]
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="WallPart1"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="WallPart2" type="StaticBody" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
transform = Transform( 3, 0, 0, 0, 1.5, 0, 0, 0, 0.2, 3, 1.5, 0 )
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="WallPart2"]
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="WallPart2"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="WallPart3" type="StaticBody" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
transform = Transform( 6, 0, 0, 0, 1, 0, 0, 0, 0.2, 0, 4, 0 )
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="WallPart3"]
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="WallPart3"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Door" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.5, 0 )
|
56
Level/Buildings/DoubleDoorWall.tscn
Normal file
56
Level/Buildings/DoubleDoorWall.tscn
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Level/Interactables/Door/Door.tscn" type="PackedScene" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="CubeMesh" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape" id=2]
|
||||||
|
|
||||||
|
[node name="DoubleDoorWall" type="Spatial"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2 )
|
||||||
|
|
||||||
|
[node name="WallPart1" type="StaticBody" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
transform = Transform( 2, 0, 0, 0, 1.5, 0, 0, 0, 0.2, -4, 1.5, 0 )
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="WallPart1"]
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="WallPart1"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="WallPart2" type="StaticBody" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
transform = Transform( 2, 0, 0, 0, 1.5, 0, 0, 0, 0.2, 4, 1.5, 0 )
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="WallPart2"]
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="WallPart2"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="WallPart3" type="StaticBody" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
transform = Transform( 6, 0, 0, 0, 1, 0, 0, 0, 0.2, 0, 4, 0 )
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="WallPart3"]
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="WallPart3"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Door" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.5, 0 )
|
||||||
|
|
||||||
|
[node name="Door2" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 2, 1.5, 0 )
|
||||||
|
invert_open = true
|
@ -1,18 +1,28 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Level/Interactables/Door/Door.tscn" type="PackedScene" id=1]
|
||||||
|
|
||||||
[sub_resource type="CylinderMesh" id=1]
|
[sub_resource type="CylinderMesh" id=1]
|
||||||
top_radius = 20.0
|
top_radius = 20.0
|
||||||
bottom_radius = 35.0
|
bottom_radius = 35.0
|
||||||
height = 100.0
|
height = 100.0
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape" id=2]
|
||||||
|
|
||||||
[node name="Factory" type="Spatial"]
|
[node name="Factory" type="Spatial"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -185, 0, -191 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -185, 0, -191 )
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00691223, 50, 0.124863 )
|
||||||
mesh = SubResource( 1 )
|
mesh = SubResource( 1 )
|
||||||
material/0 = null
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="DoorLeft" parent="MeshInstance" instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -2.18557e-007, 0, 1, 0, 5, 0, -5, 0, -4.37114e-008, 35.308, -42, 8.857 )
|
||||||
|
|
||||||
|
[node name="DoorRight" parent="MeshInstance" instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -2.18557e-007, 0, -1, 0, 5, 0, 5, 0, -4.37114e-008, 35.37, -42, -11.118 )
|
||||||
|
|
||||||
[node name="MeshInstance2" type="MeshInstance" parent="."]
|
[node name="MeshInstance2" type="MeshInstance" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 50, 60 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 50, 60 )
|
||||||
mesh = SubResource( 1 )
|
mesh = SubResource( 1 )
|
||||||
@ -22,3 +32,12 @@ material/0 = null
|
|||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 50, -60 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 50, -60 )
|
||||||
mesh = SubResource( 1 )
|
mesh = SubResource( 1 )
|
||||||
material/0 = null
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="FactoryEntry" type="Area" parent="." groups=[
|
||||||
|
"FactoryEntry",
|
||||||
|
]]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 50.9938, 0, 0 )
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="FactoryEntry"]
|
||||||
|
transform = Transform( 15.5705, 0, 0, 0, 1, 0, 0, 0, 25.0132, -18.0871, 0, 0 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
@ -18,14 +18,17 @@ mid_height = 2.0
|
|||||||
|
|
||||||
[node name="CSGMesh" type="CSGMesh" parent="."]
|
[node name="CSGMesh" type="CSGMesh" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0 )
|
||||||
|
layers = 3
|
||||||
mesh = SubResource( 2 )
|
mesh = SubResource( 2 )
|
||||||
|
|
||||||
[node name="CSGMesh2" type="CSGMesh" parent="CSGMesh"]
|
[node name="CSGMesh2" type="CSGMesh" parent="CSGMesh"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00447488, -1, -0.00174999 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00447488, -1, -0.00174999 )
|
||||||
|
layers = 3
|
||||||
operation = 2
|
operation = 2
|
||||||
mesh = SubResource( 3 )
|
mesh = SubResource( 3 )
|
||||||
|
|
||||||
[node name="CSGMesh3" type="CSGMesh" parent="CSGMesh"]
|
[node name="CSGMesh3" type="CSGMesh" parent="CSGMesh"]
|
||||||
transform = Transform( 1, 0, 0, 0, -0.0161161, -0.99987, 0, 0.99987, -0.0161161, 0, -4.59426, -5.98218 )
|
transform = Transform( 1, 0, 0, 0, -0.0161161, -0.99987, 0, 0.99987, -0.0161161, 0, -4.59426, -5.98218 )
|
||||||
|
layers = 3
|
||||||
operation = 2
|
operation = 2
|
||||||
mesh = SubResource( 4 )
|
mesh = SubResource( 4 )
|
||||||
|
@ -1,77 +1,47 @@
|
|||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Level/Interactables/Door/Door.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://Level/Buildings/DoubleDoorWall.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://Level/Buildings/DoorWall.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=3]
|
||||||
|
|
||||||
[sub_resource type="CubeMesh" id=4]
|
[sub_resource type="BoxShape" id=1]
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=5]
|
[sub_resource type="CubeMesh" id=2]
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=6]
|
[sub_resource type="BoxShape" id=3]
|
||||||
|
|
||||||
[sub_resource type="CubeMesh" id=7]
|
|
||||||
|
|
||||||
[node name="InFactory" type="Spatial"]
|
[node name="InFactory" type="Spatial"]
|
||||||
|
|
||||||
[node name="Architecture" type="Spatial" parent="."]
|
[node name="Architecture" type="Spatial" parent="."]
|
||||||
|
|
||||||
[node name="EntryHall" type="Spatial" parent="Architecture"]
|
[node name="EntryHall" type="Spatial" parent="Architecture"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2 )
|
editor/display_folded = true
|
||||||
|
|
||||||
[node name="WallPart1" type="StaticBody" parent="Architecture/EntryHall"]
|
[node name="DoubleDoorWall" parent="Architecture/EntryHall" instance=ExtResource( 1 )]
|
||||||
transform = Transform( 2, 0, 0, 0, 1.5, 0, 0, 0, 0.2, -4, 1.5, 0 )
|
|
||||||
collision_layer = 3
|
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="Architecture/EntryHall/WallPart1"]
|
[node name="DoorWall" parent="Architecture/EntryHall" instance=ExtResource( 2 )]
|
||||||
layers = 3
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 0, 2 )
|
||||||
mesh = SubResource( 4 )
|
|
||||||
material/0 = null
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="Architecture/EntryHall/WallPart1"]
|
|
||||||
shape = SubResource( 5 )
|
|
||||||
|
|
||||||
[node name="WallPart2" type="StaticBody" parent="Architecture/EntryHall"]
|
|
||||||
transform = Transform( 2, 0, 0, 0, 1.5, 0, 0, 0, 0.2, 4, 1.5, 0 )
|
|
||||||
collision_layer = 3
|
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="Architecture/EntryHall/WallPart2"]
|
|
||||||
layers = 3
|
|
||||||
mesh = SubResource( 4 )
|
|
||||||
material/0 = null
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="Architecture/EntryHall/WallPart2"]
|
|
||||||
shape = SubResource( 5 )
|
|
||||||
|
|
||||||
[node name="WallPart3" type="StaticBody" parent="Architecture/EntryHall"]
|
|
||||||
transform = Transform( 6, 0, 0, 0, 1, 0, 0, 0, 0.2, 0, 4, 0 )
|
|
||||||
collision_layer = 3
|
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="Architecture/EntryHall/WallPart3"]
|
|
||||||
layers = 3
|
|
||||||
mesh = SubResource( 4 )
|
|
||||||
material/0 = null
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="Architecture/EntryHall/WallPart3"]
|
|
||||||
shape = SubResource( 5 )
|
|
||||||
|
|
||||||
[node name="Door" parent="Architecture/EntryHall" instance=ExtResource( 1 )]
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.5, 0 )
|
|
||||||
|
|
||||||
[node name="Door2" parent="Architecture/EntryHall" instance=ExtResource( 1 )]
|
|
||||||
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 2, 1.5, 0 )
|
|
||||||
invert_open = true
|
|
||||||
|
|
||||||
[node name="Floor" type="StaticBody" parent="Architecture"]
|
[node name="Floor" type="StaticBody" parent="Architecture"]
|
||||||
|
editor/display_folded = true
|
||||||
transform = Transform( 100, 0, 0, 0, 1, 0, 0, 0, 100, 0, -1, 0 )
|
transform = Transform( 100, 0, 0, 0, 1, 0, 0, 0, 100, 0, -1, 0 )
|
||||||
collision_layer = 3
|
collision_layer = 3
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="Architecture/Floor"]
|
[node name="CollisionShape" type="CollisionShape" parent="Architecture/Floor"]
|
||||||
shape = SubResource( 6 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="Architecture/Floor"]
|
[node name="MeshInstance" type="MeshInstance" parent="Architecture/Floor"]
|
||||||
layers = 3
|
layers = 3
|
||||||
mesh = SubResource( 7 )
|
mesh = SubResource( 2 )
|
||||||
material/0 = null
|
material/0 = null
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource( 2 )]
|
[node name="OutsideEntry" type="Area" parent="Architecture" groups=[
|
||||||
|
"OutsideEntry",
|
||||||
|
]]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="Architecture/OutsideEntry"]
|
||||||
|
transform = Transform( 6.4742, 0, 0, 0, 1, 0, 0, 0, 4.02915, -24.461, 0, 2.21844 )
|
||||||
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource( 3 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 )
|
||||||
|
271
Level/Labyrinth.tscn
Normal file
271
Level/Labyrinth.tscn
Normal file
@ -0,0 +1,271 @@
|
|||||||
|
[gd_scene load_steps=14 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Level/Labyrinth/LabyrinthCorridorTrue.tscn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://Level/Labyrinth/LabyrinthCrossing.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://Level/Labyrinth/LabyrinthCorridorMasked.tscn" type="PackedScene" id=3]
|
||||||
|
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=4]
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id=1]
|
||||||
|
size = Vector2( 130, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=2]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=3]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=4]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=5]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=6]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=7]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape" id=8]
|
||||||
|
points = PoolVector3Array( 65, 0, 4, -65, 0, 4, 65, 0, -4, -65, 0, -4 )
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id=9]
|
||||||
|
ambient_light_color = Color( 0.290196, 0, 0, 1 )
|
||||||
|
|
||||||
|
[node name="Labyrinth" type="Spatial"]
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue2" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue3" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue4" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue11" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue9" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue13" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -105, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue16" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue5" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue6" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -30, 0, -15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue17" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -90, 0, -15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue18" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -90, 0, 15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue8" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -30, 0, -45 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue12" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -60, 0, -45 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue10" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -45 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue7" parent="." instance=ExtResource( 1 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -30, 0, 15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing3" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing6" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing7" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing15" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing11" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing17" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing13" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing14" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing2" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing22" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing5" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing12" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing16" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing8" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing9" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing10" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCrossing4" parent="." instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked5" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75, 0, 0 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked6" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked7" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, 30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked4" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked12" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, -30 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked9" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked10" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked11" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -105, 0, -60 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked2" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -60, 0, 15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked3" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -60, 0, -15 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked13" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -90, 0, -45 )
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorMasked8" parent="." instance=ExtResource( 3 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -15 )
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource( 4 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 2, 0 )
|
||||||
|
IsInLabyrinth = true
|
||||||
|
|
||||||
|
[node name="OuterWalls" type="Spatial" parent="."]
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( -1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, -50, 5, 35 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance/StaticBody"]
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="MeshInstance2" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( 1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, -50, 5, -65 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance2"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance2/StaticBody"]
|
||||||
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="MeshInstance3" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( 1.31134e-07, -1, 4.37114e-08, 0, -4.37114e-08, -1, 1, 1.31134e-07, -5.73206e-15, 4.99999, 5, -70 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance3"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance3/StaticBody"]
|
||||||
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
|
[node name="MeshInstance4" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( 1.31134e-07, -1, 4.37114e-08, 0, -4.37114e-08, -1, 1, 1.31134e-07, -5.73206e-15, 4.99999, 5, 70 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance4"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance4/StaticBody"]
|
||||||
|
shape = SubResource( 5 )
|
||||||
|
|
||||||
|
[node name="MeshInstance5" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( 1.31134e-07, -1, 4.37114e-08, 0, -4.37114e-08, -1, 1, 1.31134e-07, -5.73206e-15, 35, 5, -7.62939e-06 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance5"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance5/StaticBody"]
|
||||||
|
shape = SubResource( 6 )
|
||||||
|
|
||||||
|
[node name="MeshInstance8" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( -7.98311e-08, 1, -4.37114e-08, 0, -4.37114e-08, -1, -0.49, -1.62921e-07, 7.12149e-15, -95, 5, -15 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance8"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance8/StaticBody"]
|
||||||
|
shape = SubResource( 6 )
|
||||||
|
|
||||||
|
[node name="MeshInstance6" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( -1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 75, 5, 4.99999 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance6"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance6/StaticBody"]
|
||||||
|
shape = SubResource( 7 )
|
||||||
|
|
||||||
|
[node name="MeshInstance7" type="MeshInstance" parent="OuterWalls"]
|
||||||
|
transform = Transform( 1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 75, 5, -5.00001 )
|
||||||
|
layers = 3
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = null
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="OuterWalls/MeshInstance7"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="OuterWalls/MeshInstance7/StaticBody"]
|
||||||
|
shape = SubResource( 8 )
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource( 9 )
|
34
Level/Labyrinth/LabyrinthCorridorMasked.tscn
Normal file
34
Level/Labyrinth/LabyrinthCorridorMasked.tscn
Normal file
File diff suppressed because one or more lines are too long
19
Level/Labyrinth/LabyrinthCorridorTrue.tscn
Normal file
19
Level/Labyrinth/LabyrinthCorridorTrue.tscn
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Level/Labyrinth/LabyrinthCorridorMasked.tscn" type="PackedScene" id=1]
|
||||||
|
|
||||||
|
[node name="LabyrinthCorridorTrue" instance=ExtResource( 1 )]
|
||||||
|
|
||||||
|
[node name="TrueMesh" parent="." index="0"]
|
||||||
|
layers = 2
|
||||||
|
|
||||||
|
[node name="StaticBody" parent="TrueMesh" index="0"]
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 2
|
||||||
|
|
||||||
|
[node name="MaskedMesh" parent="." index="1"]
|
||||||
|
layers = 1
|
||||||
|
|
||||||
|
[node name="StaticBody" parent="MaskedMesh" index="0"]
|
||||||
|
collision_layer = 1
|
||||||
|
collision_mask = 1
|
44
Level/Labyrinth/LabyrinthCrossing.tscn
Normal file
44
Level/Labyrinth/LabyrinthCrossing.tscn
Normal file
File diff suppressed because one or more lines are too long
6
Level/Labyrinth/LabyrinthWallMaterial.tres
Normal file
6
Level/Labyrinth/LabyrinthWallMaterial.tres
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[gd_resource type="SpatialMaterial" format=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
params_cull_mode = 2
|
||||||
|
metallic = 0.65
|
||||||
|
roughness = 0.71
|
21
Level/WorkerSpawner.gd
Normal file
21
Level/WorkerSpawner.gd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
extends Spatial
|
||||||
|
|
||||||
|
const SPAWN_TIME_MIN = 3000 # min spawntime in ms
|
||||||
|
const SPAWN_TIME_MAX = 7000 # max spawntime in ms
|
||||||
|
|
||||||
|
var _worker
|
||||||
|
var _lastSpawn = 0 # timestamp of last spawned worker
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
_worker = load("res://Characters/Worker/Worker.tscn")
|
||||||
|
assert(null != _worker)
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
# spawns new workers after defined time
|
||||||
|
var cur_time = OS.get_ticks_msec()
|
||||||
|
var diff = rand_range(SPAWN_TIME_MIN, SPAWN_TIME_MAX)
|
||||||
|
if cur_time - _lastSpawn > diff:
|
||||||
|
#Logger.info(name + " spawning new worker")
|
||||||
|
var new_worker = _worker.instance()
|
||||||
|
add_child(new_worker)
|
||||||
|
_lastSpawn = cur_time
|
213
Level/World.tscn
213
Level/World.tscn
@ -1,18 +1,19 @@
|
|||||||
[gd_scene load_steps=21 format=2]
|
[gd_scene load_steps=22 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://Level/Interactables/Keycard/Keycard.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://Characters/Meldewesen/Meldewesen.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://Level/Interactables/Key/Key.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://Level/Interactables/Keycard/Keycard.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://Level/Interactables/Door/Door.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://Level/Interactables/Key/Key.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://Level/Interactables/Lever/Lever.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://Level/WorkerSpawner.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://Level/Buildings/PlayerHouse.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://Level/Interactables/Lever/Lever.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://Level/Buildings/BuildingBlock.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://Level/Buildings/PlayerHouse.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://Level/Buildings/MeldewesenHome.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://Level/Buildings/BuildingBlock.tscn" type="PackedScene" id=8]
|
||||||
[ext_resource path="res://Level/Buildings/Factory.tscn" type="PackedScene" id=9]
|
[ext_resource path="res://Level/Buildings/MeldewesenHome.tscn" type="PackedScene" id=9]
|
||||||
[ext_resource path="res://Util/NodeGroupNotifier.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://Level/Buildings/Factory.tscn" type="PackedScene" id=10]
|
||||||
[ext_resource path="res://Characters/Util/PathNavigatorForNPC.tscn" type="PackedScene" id=11]
|
[ext_resource path="res://Level/Buildings/DoorWall.tscn" type="PackedScene" id=11]
|
||||||
[ext_resource path="res://Characters/Meldewesen/Meldewesen.tscn" type="PackedScene" id=12]
|
[ext_resource path="res://Util/NodeGroupNotifier.tscn" type="PackedScene" id=12]
|
||||||
[ext_resource path="res://Util/AmbiencePlayer.tscn" type="PackedScene" id=13]
|
[ext_resource path="res://Characters/Util/PathNavigatorForNPC.tscn" type="PackedScene" id=13]
|
||||||
|
[ext_resource path="res://Util/AmbiencePlayer.tscn" type="PackedScene" id=14]
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=1]
|
[sub_resource type="BoxShape" id=1]
|
||||||
|
|
||||||
@ -44,19 +45,34 @@ _data = {
|
|||||||
[node name="Player" parent="." instance=ExtResource( 1 )]
|
[node name="Player" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 7 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 7 )
|
||||||
|
|
||||||
|
[node name="Enemies" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="Meldewesen2" parent="Enemies" instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -3.88156, 0, 14.5424 )
|
||||||
|
_visibility_path = NodePath("../../Enemies/Meldewesen2/Visibility")
|
||||||
|
|
||||||
|
[node name="Meldewesen3" parent="Enemies" instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 58.4396, 0, -200.412 )
|
||||||
|
_visibility_path = NodePath("../../Enemies/Meldewesen2/Visibility")
|
||||||
|
|
||||||
|
[node name="Meldewesen4" parent="Enemies" instance=ExtResource( 2 )]
|
||||||
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13.0581, 0, -67.0506 )
|
||||||
|
_visibility_path = NodePath("../../Enemies/Meldewesen2/Visibility")
|
||||||
|
|
||||||
[node name="Collectibles" type="Spatial" parent="."]
|
[node name="Collectibles" type="Spatial" parent="."]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 15.0831, 1.63203, 13.0809 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 15.0831, 1.63203, 13.0809 )
|
||||||
|
|
||||||
[node name="Keycard" parent="Collectibles" groups=[
|
[node name="Keycard" parent="Collectibles" groups=[
|
||||||
"Collectibles",
|
"Collectibles",
|
||||||
] instance=ExtResource( 2 )]
|
] instance=ExtResource( 3 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 203.861, -0.63203, 110.591 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 203.861, -0.63203, 110.591 )
|
||||||
card_lvl = 1
|
card_lvl = 1
|
||||||
|
|
||||||
[node name="Key" parent="Collectibles" groups=[
|
[node name="Key" parent="Collectibles" groups=[
|
||||||
"Collectibles",
|
"Collectibles",
|
||||||
] instance=ExtResource( 3 )]
|
] instance=ExtResource( 4 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75.0183, 0, -2.86102e-006 )
|
editor/display_folded = true
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -77.5603, 0, -1.90735e-006 )
|
||||||
key_id = 1
|
key_id = 1
|
||||||
|
|
||||||
[node name="Area" type="Area" parent="Collectibles/Key" groups=[
|
[node name="Area" type="Area" parent="Collectibles/Key" groups=[
|
||||||
@ -67,181 +83,208 @@ key_id = 1
|
|||||||
transform = Transform( 15, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0 )
|
transform = Transform( 15, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="Touchables" type="Spatial" parent="."]
|
[node name="WorkerSpawner" type="Node" parent="."]
|
||||||
editor/display_folded = true
|
editor/display_folded = true
|
||||||
|
|
||||||
[node name="Door" parent="Touchables" instance=ExtResource( 4 )]
|
[node name="WorkerSpawner" type="Spatial" parent="WorkerSpawner"]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 73.152, 2, -191.228 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.20278, 0, -43.032 )
|
||||||
door_lvl = 1
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="Lever" parent="Touchables" instance=ExtResource( 5 )]
|
[node name="WorkerSpawner2" type="Spatial" parent="WorkerSpawner"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.36571, 0, -102.743 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="WorkerSpawner3" type="Spatial" parent="WorkerSpawner"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.36571, 0, 52.7015 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="WorkerSpawner4" type="Spatial" parent="WorkerSpawner"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 69.6766, 0, -136.624 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="WorkerSpawner5" type="Spatial" parent="WorkerSpawner"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15.3518, 0, -202.564 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="Touchables" type="Spatial" parent="."]
|
||||||
|
|
||||||
|
[node name="Lever" parent="Touchables" instance=ExtResource( 6 )]
|
||||||
transform = Transform( 1.19249e-008, 0, -1, 0, 1, 0, 1, 0, 1.19249e-008, 5.94476, 2, 11.731 )
|
transform = Transform( 1.19249e-008, 0, -1, 0, 1, 0, 1, 0, 1.19249e-008, 5.94476, 2, 11.731 )
|
||||||
|
|
||||||
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
|
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
|
||||||
navmesh = SubResource( 2 )
|
navmesh = SubResource( 2 )
|
||||||
|
|
||||||
[node name="PlayerHouse" parent="NavigationMeshInstance" instance=ExtResource( 6 )]
|
[node name="PlayerHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 14 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 14 )
|
||||||
|
|
||||||
|
[node name="MeldewesenHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )]
|
||||||
|
transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 1, 14.9197, 0, 89.983 )
|
||||||
|
|
||||||
[node name="BuildingBlocks" type="Spatial" parent="NavigationMeshInstance"]
|
[node name="BuildingBlocks" type="Spatial" parent="NavigationMeshInstance"]
|
||||||
editor/display_folded = true
|
editor/display_folded = true
|
||||||
|
|
||||||
[node name="BuildingBlock" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -13 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -13 )
|
||||||
|
|
||||||
[node name="BuildingBlock2" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock2" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -13 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -13 )
|
||||||
|
|
||||||
[node name="BuildingBlock11" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock11" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 41 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 41 )
|
||||||
|
|
||||||
[node name="BuildingBlock12" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock12" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 14 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 14 )
|
||||||
|
|
||||||
[node name="BuildingBlock13" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock13" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 41 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 41 )
|
||||||
|
|
||||||
[node name="BuildingBlock14" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock14" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 47 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 47 )
|
||||||
|
|
||||||
[node name="BuildingBlock15" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock15" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 95 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 95 )
|
||||||
|
|
||||||
[node name="BuildingBlock21" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock21" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 68 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 68 )
|
||||||
|
|
||||||
[node name="BuildingBlock16" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock16" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 68 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 68 )
|
||||||
|
|
||||||
[node name="BuildingBlock20" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock20" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 95 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 95 )
|
||||||
|
|
||||||
[node name="BuildingBlock17" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock17" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 8, 0, 116 )
|
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 8, 0, 116 )
|
||||||
|
|
||||||
[node name="BuildingBlock18" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock18" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 35, 0, 116 )
|
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 35, 0, 116 )
|
||||||
|
|
||||||
[node name="BuildingBlock3" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock3" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -40 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -40 )
|
||||||
|
|
||||||
[node name="BuildingBlock4" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock4" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -40 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -40 )
|
||||||
|
|
||||||
[node name="BuildingBlock5" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock5" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 )
|
||||||
|
|
||||||
[node name="BuildingBlock10" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock10" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -46 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -46 )
|
||||||
|
|
||||||
[node name="BuildingBlock9" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock9" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -94 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -94 )
|
||||||
|
|
||||||
[node name="BuildingBlock24" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock24" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -121 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -121 )
|
||||||
|
|
||||||
[node name="BuildingBlock25" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock25" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -127 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -127 )
|
||||||
|
|
||||||
[node name="BuildingBlock26" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock26" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 0, -127 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 0, -127 )
|
||||||
|
|
||||||
[node name="BuildingBlock31" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock31" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 0, -169 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 0, -169 )
|
||||||
|
|
||||||
[node name="BuildingBlock37" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock37" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 0, -169 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 0, -169 )
|
||||||
|
|
||||||
[node name="BuildingBlock38" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock38" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 127, 0, -169 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 127, 0, -169 )
|
||||||
|
|
||||||
[node name="BuildingBlock40" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock40" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 127, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 127, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock41" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock41" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock42" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock42" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock43" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock53" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -201.078 )
|
||||||
|
|
||||||
|
[node name="BuildingBlock54" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
|
transform = Transform( -4.37114e-008, 0, 1, 0, 0.6, 0, -1, 0, -4.37114e-008, 79, 4.83048, -181.541 )
|
||||||
|
|
||||||
|
[node name="BuildingBlock43" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock44" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock44" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock45" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock45" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock46" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock46" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 0, -211 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 0, -211 )
|
||||||
|
|
||||||
[node name="BuildingBlock47" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock47" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -56, 0, -217 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -56, 0, -217 )
|
||||||
|
|
||||||
[node name="BuildingBlock48" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock48" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -217 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -217 )
|
||||||
|
|
||||||
[node name="BuildingBlock50" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock50" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -244 )
|
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -244 )
|
||||||
|
|
||||||
[node name="BuildingBlock51" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock51" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, -92, 0, -250 )
|
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, -92, 0, -250 )
|
||||||
|
|
||||||
[node name="BuildingBlock52" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock52" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1.31134e-007, 0, 1, 0, 1, 0, -1, 0, 1.31134e-007, -113, 0, -256 )
|
transform = Transform( 1.31134e-007, 0, 1, 0, 1, 0, -1, 0, 1.31134e-007, -113, 0, -256 )
|
||||||
|
|
||||||
[node name="BuildingBlock32" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock32" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -169 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -169 )
|
||||||
|
|
||||||
[node name="BuildingBlock33" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock33" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19, 0, -169 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19, 0, -169 )
|
||||||
|
|
||||||
[node name="BuildingBlock34" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock34" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -169 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -169 )
|
||||||
|
|
||||||
[node name="BuildingBlock35" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock35" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -67, 0, -163 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -67, 0, -163 )
|
||||||
|
|
||||||
[node name="BuildingBlock36" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock36" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 )
|
||||||
|
|
||||||
[node name="BuildingBlock49" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock49" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142 )
|
||||||
|
|
||||||
[node name="BuildingBlock27" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock27" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 41, 0, -148 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 41, 0, -148 )
|
||||||
|
|
||||||
[node name="BuildingBlock28" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock28" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -109 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -109 )
|
||||||
|
|
||||||
[node name="BuildingBlock29" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock29" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -136 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -136 )
|
||||||
|
|
||||||
[node name="BuildingBlock30" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock30" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -163 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -163 )
|
||||||
|
|
||||||
[node name="BuildingBlock39" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock39" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 133, 0, -190 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 133, 0, -190 )
|
||||||
|
|
||||||
[node name="MeldewesenHome" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
[node name="MeldewesenHome" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 9 )]
|
||||||
|
|
||||||
[node name="BuildingBlock6" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock6" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -67 )
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -67 )
|
||||||
|
|
||||||
[node name="BuildingBlock7" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock7" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 )
|
||||||
|
|
||||||
[node name="BuildingBlock8" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock8" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 )
|
||||||
|
|
||||||
[node name="BuildingBlock22" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock22" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -88 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -88 )
|
||||||
|
|
||||||
[node name="BuildingBlock23" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 7 )]
|
[node name="BuildingBlock23" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -88 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -88 )
|
||||||
|
|
||||||
[node name="Factory" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 9 )]
|
[node name="Factory" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 10 )]
|
||||||
|
|
||||||
[node name="Ground" type="MeshInstance" parent="NavigationMeshInstance"]
|
[node name="Ground" type="MeshInstance" parent="NavigationMeshInstance"]
|
||||||
editor/display_folded = true
|
editor/display_folded = true
|
||||||
@ -251,30 +294,40 @@ mesh = SubResource( 3 )
|
|||||||
material/0 = null
|
material/0 = null
|
||||||
|
|
||||||
[node name="StaticBody" type="StaticBody" parent="NavigationMeshInstance/Ground"]
|
[node name="StaticBody" type="StaticBody" parent="NavigationMeshInstance/Ground"]
|
||||||
|
editor/display_folded = true
|
||||||
collision_layer = 7
|
collision_layer = 7
|
||||||
collision_mask = 7
|
collision_mask = 7
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="NavigationMeshInstance/Ground/StaticBody"]
|
[node name="CollisionShape" type="CollisionShape" parent="NavigationMeshInstance/Ground/StaticBody"]
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
|
[node name="DoorWall" parent="NavigationMeshInstance/Ground" instance=ExtResource( 11 )]
|
||||||
|
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 156.062, 0, -76.2607 )
|
||||||
|
|
||||||
|
[node name="Door" parent="NavigationMeshInstance/Ground/DoorWall" index="3"]
|
||||||
|
door_lvl = 1
|
||||||
|
|
||||||
[node name="Environment" type="Spatial" parent="."]
|
[node name="Environment" type="Spatial" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="Environment"]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="Environment"]
|
||||||
environment = SubResource( 6 )
|
environment = SubResource( 6 )
|
||||||
|
|
||||||
[node name="DirectionalLight" type="DirectionalLight" parent="Environment"]
|
[node name="DirectionalLight" type="DirectionalLight" parent="Environment"]
|
||||||
transform = Transform( 0.642788, -0.262003, -0.719846, -8.21505e-008, -0.939693, 0.34202, -0.766044, -0.219847, -0.604023, 0, 7, 0 )
|
transform = Transform( 0.642788, -0.262003, -0.719846, 0, -0.939693, 0.34202, -0.766044, -0.219846, -0.604023, 0, 7, 0 )
|
||||||
layers = 3
|
layers = 3
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
|
|
||||||
[node name="NodeGroupNotifier" parent="." instance=ExtResource( 10 )]
|
[node name="NodeGroupNotifier" parent="." instance=ExtResource( 12 )]
|
||||||
group_name = "Navigator"
|
group_name = "Navigator"
|
||||||
node_to_send = NodePath("..")
|
node_to_send = NodePath("..")
|
||||||
|
|
||||||
[node name="PathNavigatorForNPC" parent="." instance=ExtResource( 11 )]
|
[node name="PathNavigatorForNPC" parent="." instance=ExtResource( 13 )]
|
||||||
curve = SubResource( 7 )
|
curve = SubResource( 7 )
|
||||||
body_nodepath = NodePath("Meldewesen")
|
body_nodepath = NodePath("Meldewesen")
|
||||||
|
|
||||||
[node name="Meldewesen" parent="PathNavigatorForNPC" instance=ExtResource( 12 )]
|
[node name="Meldewesen" parent="PathNavigatorForNPC" instance=ExtResource( 2 )]
|
||||||
|
|
||||||
[node name="AmbiencePlayer" parent="." instance=ExtResource( 13 )]
|
[node name="AmbiencePlayer" parent="." instance=ExtResource( 14 )]
|
||||||
|
|
||||||
|
[editable path="NavigationMeshInstance/Ground/DoorWall"]
|
||||||
|
43
ReTrace_report.md
Normal file
43
ReTrace_report.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# ReTrace
|
||||||
|
brief game description, about 3 sentences
|
||||||
|
|
||||||
|
## Group Members
|
||||||
|
- Bittner Karl, if17b005
|
||||||
|
- Leithner Michael, if17b051
|
||||||
|
- Palluch Leon, if17b033
|
||||||
|
- Schmidt Nino, if17b037
|
||||||
|
|
||||||
|
## Controls
|
||||||
|
- standard fps: walk with WASD, look around with mouse
|
||||||
|
- take pills with 'R'
|
||||||
|
- interact with objects 'E'
|
||||||
|
|
||||||
|
## Gameplay Features
|
||||||
|
- day-night cycle
|
||||||
|
- feature B
|
||||||
|
- ...
|
||||||
|
|
||||||
|
## Technical Features (Unity and other)
|
||||||
|
- Godot :D
|
||||||
|
- Particles
|
||||||
|
- Navigation Path
|
||||||
|
- AudioMixer
|
||||||
|
|
||||||
|
## Time Spent report
|
||||||
|
- Where and in what areas did you spend your time. How much time did you use for feature A, B, C, how much for gameplay programming, where did you spend more/less time than anticipated,
|
||||||
|
- How well did you manage to stay within the time budget and why.
|
||||||
|
- Who did what in the assignment
|
||||||
|
|
||||||
|
## Problems and Challenges
|
||||||
|
Where did you run into problems and challenges and how did you solve them
|
||||||
|
|
||||||
|
## Resources, Sources, References and Links
|
||||||
|
Links to all resources, sources you are using. Don't try to reinvent the wheel and be smart about what you build and what you use from others, but never forget to document it accordingly. If you use something and don't document it, its plagiarism!
|
||||||
|
- http://docs.godotengine.org/
|
||||||
|
|
||||||
|
## Self Assesment
|
||||||
|
Game Design: 35
|
||||||
|
Technical/Unity Features: 30
|
||||||
|
meta: 15
|
||||||
|
---------
|
||||||
|
total: 80
|
BIN
Resources/Audio/cock.wav
Normal file
BIN
Resources/Audio/cock.wav
Normal file
Binary file not shown.
21
Resources/Audio/cock.wav.import
Normal file
21
Resources/Audio/cock.wav.import
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/cock.wav-89444e13e9761c20354b7f2c9a7420fe.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Resources/Audio/cock.wav"
|
||||||
|
dest_files=[ "res://.import/cock.wav-89444e13e9761c20354b7f2c9a7420fe.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=true
|
||||||
|
edit/normalize=true
|
||||||
|
edit/loop=false
|
||||||
|
compress/mode=0
|
BIN
Resources/Audio/do-job.wav
Normal file
BIN
Resources/Audio/do-job.wav
Normal file
Binary file not shown.
21
Resources/Audio/do-job.wav.import
Normal file
21
Resources/Audio/do-job.wav.import
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/do-job.wav-43df1cc0e940e076a0d16a1f10561364.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Resources/Audio/do-job.wav"
|
||||||
|
dest_files=[ "res://.import/do-job.wav-43df1cc0e940e076a0d16a1f10561364.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=true
|
||||||
|
edit/normalize=true
|
||||||
|
edit/loop=false
|
||||||
|
compress/mode=0
|
BIN
Resources/Audio/go-home.wav
Normal file
BIN
Resources/Audio/go-home.wav
Normal file
Binary file not shown.
21
Resources/Audio/go-home.wav.import
Normal file
21
Resources/Audio/go-home.wav.import
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/go-home.wav-b95ef6ffb01db7d887c9c8215db4aeac.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Resources/Audio/go-home.wav"
|
||||||
|
dest_files=[ "res://.import/go-home.wav-b95ef6ffb01db7d887c9c8215db4aeac.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=true
|
||||||
|
edit/normalize=true
|
||||||
|
edit/loop=false
|
||||||
|
compress/mode=0
|
BIN
Resources/Audio/take-pills.wav
Normal file
BIN
Resources/Audio/take-pills.wav
Normal file
Binary file not shown.
21
Resources/Audio/take-pills.wav.import
Normal file
21
Resources/Audio/take-pills.wav.import
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/take-pills.wav-c53467c031bc41f1583c5df7c998da45.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Resources/Audio/take-pills.wav"
|
||||||
|
dest_files=[ "res://.import/take-pills.wav-c53467c031bc41f1583c5df7c998da45.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=true
|
||||||
|
edit/normalize=true
|
||||||
|
edit/loop=false
|
||||||
|
compress/mode=0
|
BIN
Resources/Audio/to-work.wav
Normal file
BIN
Resources/Audio/to-work.wav
Normal file
Binary file not shown.
21
Resources/Audio/to-work.wav.import
Normal file
21
Resources/Audio/to-work.wav.import
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/to-work.wav-651eff9c01a8a6733015d116b9be0020.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Resources/Audio/to-work.wav"
|
||||||
|
dest_files=[ "res://.import/to-work.wav-651eff9c01a8a6733015d116b9be0020.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=true
|
||||||
|
edit/normalize=true
|
||||||
|
edit/loop=false
|
||||||
|
compress/mode=0
|
@ -3,6 +3,6 @@
|
|||||||
[ext_resource path="res://Resources/Fonts/Beon-Regular.otf" type="DynamicFontData" id=1]
|
[ext_resource path="res://Resources/Fonts/Beon-Regular.otf" type="DynamicFontData" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
size = 180
|
size = 20
|
||||||
use_filter = true
|
use_filter = true
|
||||||
font_data = ExtResource( 1 )
|
font_data = ExtResource( 1 )
|
||||||
|
10
Resources/Models/LabyrinthCorridorSolid.mtl
Normal file
10
Resources/Models/LabyrinthCorridorSolid.mtl
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Blender MTL File: 'None'
|
||||||
|
# Material Count: 1
|
||||||
|
|
||||||
|
newmtl None
|
||||||
|
Ns 500
|
||||||
|
Ka 0.8 0.8 0.8
|
||||||
|
Kd 0.8 0.8 0.8
|
||||||
|
Ks 0.8 0.8 0.8
|
||||||
|
d 1
|
||||||
|
illum 2
|
5450
Resources/Models/LabyrinthCorridorSolid.obj
Normal file
5450
Resources/Models/LabyrinthCorridorSolid.obj
Normal file
File diff suppressed because it is too large
Load Diff
18
Resources/Models/LabyrinthCorridorSolid.obj.import
Normal file
18
Resources/Models/LabyrinthCorridorSolid.obj.import
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wavefront_obj"
|
||||||
|
type="Mesh"
|
||||||
|
path="res://.import/LabyrinthCorridorSolid.obj-e1fbddf1d982d3a7646524843d326cb5.mesh"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
files=[ "res://.import/LabyrinthCorridorSolid.obj-e1fbddf1d982d3a7646524843d326cb5.mesh" ]
|
||||||
|
|
||||||
|
source_file="res://Resources/Models/LabyrinthCorridorSolid.obj"
|
||||||
|
dest_files=[ "res://.import/LabyrinthCorridorSolid.obj-e1fbddf1d982d3a7646524843d326cb5.mesh", "res://.import/LabyrinthCorridorSolid.obj-e1fbddf1d982d3a7646524843d326cb5.mesh" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
generate_tangents=true
|
||||||
|
scale_mesh=Vector3( 1, 1, 1 )
|
||||||
|
optimize_mesh=true
|
10
Resources/Models/LabyrinthCorridorWalkable.mtl
Normal file
10
Resources/Models/LabyrinthCorridorWalkable.mtl
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Blender MTL File: 'None'
|
||||||
|
# Material Count: 1
|
||||||
|
|
||||||
|
newmtl None
|
||||||
|
Ns 500
|
||||||
|
Ka 0.8 0.8 0.8
|
||||||
|
Kd 0.8 0.8 0.8
|
||||||
|
Ks 0.8 0.8 0.8
|
||||||
|
d 1
|
||||||
|
illum 2
|
3548
Resources/Models/LabyrinthCorridorWalkable.obj
Normal file
3548
Resources/Models/LabyrinthCorridorWalkable.obj
Normal file
File diff suppressed because it is too large
Load Diff
18
Resources/Models/LabyrinthCorridorWalkable.obj.import
Normal file
18
Resources/Models/LabyrinthCorridorWalkable.obj.import
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wavefront_obj"
|
||||||
|
type="Mesh"
|
||||||
|
path="res://.import/LabyrinthCorridorWalkable.obj-3c2f1f74b653b9e457e6513fd3db92e0.mesh"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
files=[ "res://.import/LabyrinthCorridorWalkable.obj-3c2f1f74b653b9e457e6513fd3db92e0.mesh" ]
|
||||||
|
|
||||||
|
source_file="res://Resources/Models/LabyrinthCorridorWalkable.obj"
|
||||||
|
dest_files=[ "res://.import/LabyrinthCorridorWalkable.obj-3c2f1f74b653b9e457e6513fd3db92e0.mesh", "res://.import/LabyrinthCorridorWalkable.obj-3c2f1f74b653b9e457e6513fd3db92e0.mesh" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
generate_tangents=true
|
||||||
|
scale_mesh=Vector3( 1, 1, 1 )
|
||||||
|
optimize_mesh=true
|
12
Resources/Models/LabyrinthCrossingSolid.mtl
Normal file
12
Resources/Models/LabyrinthCrossingSolid.mtl
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Blender MTL File: 'None'
|
||||||
|
# Material Count: 1
|
||||||
|
|
||||||
|
newmtl Material
|
||||||
|
Ns 323.999994
|
||||||
|
Ka 1.000000 1.000000 1.000000
|
||||||
|
Kd 0.800000 0.800000 0.800000
|
||||||
|
Ks 0.500000 0.500000 0.500000
|
||||||
|
Ke 0.0 0.0 0.0
|
||||||
|
Ni 1.450000
|
||||||
|
d 1.000000
|
||||||
|
illum 2
|
46
Resources/Models/LabyrinthCrossingSolid.obj
Normal file
46
Resources/Models/LabyrinthCrossingSolid.obj
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Blender v2.80 (sub 75) OBJ File: ''
|
||||||
|
# www.blender.org
|
||||||
|
mtllib LabyrinthCrossingSolid.mtl
|
||||||
|
o Cube
|
||||||
|
v 5.000000 10.000000 -5.000000
|
||||||
|
v 5.000000 0.000000 -5.000000
|
||||||
|
v 5.000000 10.000000 5.000000
|
||||||
|
v 5.000000 0.000000 5.000000
|
||||||
|
v -5.000000 10.000000 -5.000000
|
||||||
|
v -5.000000 0.000000 -5.000000
|
||||||
|
v -5.000000 10.000000 5.000000
|
||||||
|
v -5.000000 0.000000 5.000000
|
||||||
|
vt 0.375000 0.000000
|
||||||
|
vt 0.625000 0.000000
|
||||||
|
vt 0.625000 0.250000
|
||||||
|
vt 0.375000 0.250000
|
||||||
|
vt 0.375000 0.250000
|
||||||
|
vt 0.625000 0.250000
|
||||||
|
vt 0.625000 0.500000
|
||||||
|
vt 0.375000 0.500000
|
||||||
|
vt 0.625000 0.750000
|
||||||
|
vt 0.375000 0.750000
|
||||||
|
vt 0.625000 0.750000
|
||||||
|
vt 0.625000 1.000000
|
||||||
|
vt 0.375000 1.000000
|
||||||
|
vt 0.125000 0.500000
|
||||||
|
vt 0.375000 0.500000
|
||||||
|
vt 0.375000 0.750000
|
||||||
|
vt 0.125000 0.750000
|
||||||
|
vt 0.625000 0.500000
|
||||||
|
vt 0.875000 0.500000
|
||||||
|
vt 0.875000 0.750000
|
||||||
|
vn 0.0000 1.0000 0.0000
|
||||||
|
vn 0.0000 0.0000 1.0000
|
||||||
|
vn -1.0000 0.0000 0.0000
|
||||||
|
vn 0.0000 -1.0000 0.0000
|
||||||
|
vn 1.0000 0.0000 0.0000
|
||||||
|
vn 0.0000 0.0000 -1.0000
|
||||||
|
usemtl Material
|
||||||
|
s off
|
||||||
|
f 1/1/1 5/2/1 7/3/1 3/4/1
|
||||||
|
f 4/5/2 3/6/2 7/7/2 8/8/2
|
||||||
|
f 8/8/3 7/7/3 5/9/3 6/10/3
|
||||||
|
f 6/10/4 2/11/4 4/12/4 8/13/4
|
||||||
|
f 2/14/5 1/15/5 3/16/5 4/17/5
|
||||||
|
f 6/18/6 5/19/6 1/20/6 2/11/6
|
18
Resources/Models/LabyrinthCrossingSolid.obj.import
Normal file
18
Resources/Models/LabyrinthCrossingSolid.obj.import
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wavefront_obj"
|
||||||
|
type="Mesh"
|
||||||
|
path="res://.import/LabyrinthCrossingSolid.obj-efc7848f62ed6abc18e4c87094fc9a8d.mesh"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
files=[ "res://.import/LabyrinthCrossingSolid.obj-efc7848f62ed6abc18e4c87094fc9a8d.mesh" ]
|
||||||
|
|
||||||
|
source_file="res://Resources/Models/LabyrinthCrossingSolid.obj"
|
||||||
|
dest_files=[ "res://.import/LabyrinthCrossingSolid.obj-efc7848f62ed6abc18e4c87094fc9a8d.mesh", "res://.import/LabyrinthCrossingSolid.obj-efc7848f62ed6abc18e4c87094fc9a8d.mesh" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
generate_tangents=true
|
||||||
|
scale_mesh=Vector3( 1, 1, 1 )
|
||||||
|
optimize_mesh=true
|
10
Resources/Models/LabyrinthCrossingWalkable.mtl
Normal file
10
Resources/Models/LabyrinthCrossingWalkable.mtl
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Blender MTL File: 'None'
|
||||||
|
# Material Count: 1
|
||||||
|
|
||||||
|
newmtl None
|
||||||
|
Ns 500
|
||||||
|
Ka 0.8 0.8 0.8
|
||||||
|
Kd 0.8 0.8 0.8
|
||||||
|
Ks 0.8 0.8 0.8
|
||||||
|
d 1
|
||||||
|
illum 2
|
2928
Resources/Models/LabyrinthCrossingWalkable.obj
Normal file
2928
Resources/Models/LabyrinthCrossingWalkable.obj
Normal file
File diff suppressed because it is too large
Load Diff
18
Resources/Models/LabyrinthCrossingWalkable.obj.import
Normal file
18
Resources/Models/LabyrinthCrossingWalkable.obj.import
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wavefront_obj"
|
||||||
|
type="Mesh"
|
||||||
|
path="res://.import/LabyrinthCrossingWalkable.obj-93ee31c643124be7d6066948172b345d.mesh"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
files=[ "res://.import/LabyrinthCrossingWalkable.obj-93ee31c643124be7d6066948172b345d.mesh" ]
|
||||||
|
|
||||||
|
source_file="res://Resources/Models/LabyrinthCrossingWalkable.obj"
|
||||||
|
dest_files=[ "res://.import/LabyrinthCrossingWalkable.obj-93ee31c643124be7d6066948172b345d.mesh", "res://.import/LabyrinthCrossingWalkable.obj-93ee31c643124be7d6066948172b345d.mesh" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
generate_tangents=true
|
||||||
|
scale_mesh=Vector3( 1, 1, 1 )
|
||||||
|
optimize_mesh=true
|
@ -1,17 +1,20 @@
|
|||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Resources/Fonts/MainFont.tres" type="DynamicFont" id=1]
|
[ext_resource path="res://Resources/Fonts/Beon-Regular.otf" type="DynamicFontData" id=1]
|
||||||
[ext_resource path="res://Resources/Fonts/Beon-Regular.otf" type="DynamicFontData" id=2]
|
[ext_resource path="res://UI/PlayButton.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://UI/PlayButton.gd" type="Script" id=3]
|
[ext_resource path="res://UI/ExitButton.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://UI/ExitButton.gd" type="Script" id=4]
|
|
||||||
|
[sub_resource type="DynamicFont" id=4]
|
||||||
|
size = 180
|
||||||
|
font_data = ExtResource( 1 )
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
[sub_resource type="DynamicFont" id=1]
|
||||||
size = 32
|
size = 32
|
||||||
font_data = ExtResource( 2 )
|
font_data = ExtResource( 1 )
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=2]
|
[sub_resource type="DynamicFont" id=2]
|
||||||
size = 32
|
size = 32
|
||||||
font_data = ExtResource( 2 )
|
font_data = ExtResource( 1 )
|
||||||
|
|
||||||
[sub_resource type="Animation" id=3]
|
[sub_resource type="Animation" id=3]
|
||||||
resource_name = "Text"
|
resource_name = "Text"
|
||||||
@ -80,9 +83,10 @@ margin_bottom = 400.0
|
|||||||
|
|
||||||
[node name="GameTitle" type="Label" parent="."]
|
[node name="GameTitle" type="Label" parent="."]
|
||||||
margin_left = 1.0
|
margin_left = 1.0
|
||||||
|
margin_top = -1.16635
|
||||||
margin_right = 1025.0
|
margin_right = 1025.0
|
||||||
margin_bottom = 400.0
|
margin_bottom = 398.834
|
||||||
custom_fonts/font = ExtResource( 1 )
|
custom_fonts/font = SubResource( 4 )
|
||||||
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
||||||
custom_colors/font_color_shadow = Color( 1, 0, 0, 1 )
|
custom_colors/font_color_shadow = Color( 1, 0, 0, 1 )
|
||||||
custom_constants/shadow_offset_x = 4
|
custom_constants/shadow_offset_x = 4
|
||||||
@ -112,7 +116,7 @@ custom_colors/font_color = Color( 1, 1, 1, 1 )
|
|||||||
custom_colors/font_color_hover = Color( 0.980392, 0.839216, 0.619608, 1 )
|
custom_colors/font_color_hover = Color( 0.980392, 0.839216, 0.619608, 1 )
|
||||||
text = "Embark"
|
text = "Embark"
|
||||||
flat = true
|
flat = true
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="ExitButton" type="Button" parent="."]
|
[node name="ExitButton" type="Button" parent="."]
|
||||||
margin_left = 380.0
|
margin_left = 380.0
|
||||||
@ -123,7 +127,7 @@ custom_fonts/font = SubResource( 2 )
|
|||||||
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
||||||
text = "Disembark"
|
text = "Disembark"
|
||||||
flat = true
|
flat = true
|
||||||
script = ExtResource( 4 )
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
[node name="AnimateForeground" type="AnimationPlayer" parent="."]
|
[node name="AnimateForeground" type="AnimationPlayer" parent="."]
|
||||||
autoplay = "Text"
|
autoplay = "Text"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user