mirror of
https://github.com/Theaninova/mhlib.git
synced 2026-01-22 18:02:41 +00:00
initial commit
This commit is contained in:
61
godot/mhjnr/level.gd
Normal file
61
godot/mhjnr/level.gd
Normal file
@@ -0,0 +1,61 @@
|
||||
@tool
|
||||
extends Node2D
|
||||
|
||||
@export var level_id: int = 1
|
||||
|
||||
func _ready() -> void:
|
||||
var player = preload("res://mhjnr/Moorhuhn.tscn").instantiate()
|
||||
add_child(player)
|
||||
%Camera.player = player
|
||||
%HudLevel.text = "Level %d" % level_id
|
||||
player.position = Vector2(200, 10)
|
||||
var camera_rect: Rect2i
|
||||
|
||||
var level: ObjectScript = load("datafile://data/level%02d/settings/level.txt" % level_id)
|
||||
for data in level.static_objects:
|
||||
match data.resource_type:
|
||||
"LevelSettings":
|
||||
%LevelTimer.start(data.props["levelTime"])
|
||||
"TiledLayer":
|
||||
var scene = load("datafile://data/level%02d/layers/%s.dat" % [level_id, data.name.to_lower()])
|
||||
var tiles: TileMap = scene.instantiate()
|
||||
tiles.name = data.name
|
||||
tiles.visible = data.props["is visible"] == 1
|
||||
|
||||
var used = tiles.get_used_rect()
|
||||
used.position *= tiles.cell_quadrant_size
|
||||
used.size *= tiles.cell_quadrant_size
|
||||
camera_rect = used if camera_rect == null else camera_rect.merge(used)
|
||||
|
||||
var scroll_speed: Vector2 = data.props["scroll speed"]
|
||||
if scroll_speed.is_equal_approx(Vector2(1, 1)):
|
||||
add_child(tiles)
|
||||
else:
|
||||
var parallax = ParallaxLayer.new()
|
||||
parallax.name = data.name
|
||||
parallax.visible = data.props["is visible"] == 1
|
||||
parallax.motion_scale = data.props["scroll speed"]
|
||||
%parallax.add_child(parallax)
|
||||
parallax.add_child(tiles)
|
||||
|
||||
%Camera.limit_left = camera_rect.position.x
|
||||
%Camera.limit_top = camera_rect.position.y
|
||||
%Camera.limit_right = camera_rect.position.x + camera_rect.size.x
|
||||
%Camera.limit_bottom = camera_rect.position.y + camera_rect.size.y
|
||||
|
||||
%WorldBoundLeft.position.x = camera_rect.position.x
|
||||
%WorldBoundTop.position.y = camera_rect.position.y
|
||||
%WorldBoundRight.position.x = camera_rect.position.x + camera_rect.size.x
|
||||
%WorldBoundBottom.position.y = camera_rect.position.y + camera_rect.size.y
|
||||
|
||||
#var enemies: ObjectScript = load("datafile://data/level%02d/layers/%s.dat" % [level_id, name.to_lower()])
|
||||
#for object in enemies.dynamic_objects:
|
||||
# match object.props["subType"]:
|
||||
## 1: create_movable(object)
|
||||
# 0: create_enemy(object)
|
||||
|
||||
func create_enemy(data: ObjectData):
|
||||
pass
|
||||
|
||||
func create_movable(data: ObjectData):
|
||||
pass
|
||||
Reference in New Issue
Block a user