diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-08 19:41:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-08 19:41:00 +0200 |
commit | c0d4eb9da614c02dc5dc4a15db420014f592ba45 (patch) | |
tree | bc77af599e36432a0bfbc91d32277b229abdaad4 | |
parent | b43be80a63e54948656313d9862e0523a3aed31f (diff) | |
parent | 606d995ab7ca459593807fc895c1ec39dacac878 (diff) | |
download | hurrycurry-c0d4eb9da614c02dc5dc4a15db420014f592ba45.tar hurrycurry-c0d4eb9da614c02dc5dc4a15db420014f592ba45.tar.bz2 hurrycurry-c0d4eb9da614c02dc5dc4a15db420014f592ba45.tar.zst |
Merge branch 'master' of https://codeberg.org/metamuffin/hurrycurry
-rw-r--r-- | client/game.gd | 9 | ||||
-rw-r--r-- | client/game.tscn | 6 | ||||
-rw-r--r-- | client/map/items/item.gd | 1 | ||||
-rw-r--r-- | client/map/tiles/door.gd | 6 | ||||
-rw-r--r-- | client/map/tiles/wall_tile.gd | 2 | ||||
-rw-r--r-- | client/menu/controller_buttons/controller_button.gd | 2 | ||||
-rw-r--r-- | client/menu/ingame.tscn | 2 | ||||
-rw-r--r-- | client/player/controllable_player.gd | 13 | ||||
-rw-r--r-- | client/player/player.gd | 23 |
9 files changed, 33 insertions, 31 deletions
diff --git a/client/game.gd b/client/game.gd index 8fe150e6..401d96bb 100644 --- a/client/game.gd +++ b/client/game.gd @@ -37,13 +37,11 @@ var is_replay := false var is_joined := false var join_sent := false -var marker_target = Vector3(0,0,0) var players := {} @onready var camera: FollowCamera = $FollowCamera @onready var mp: Multiplayer = $Multiplayer @onready var map: Map = $Map -@onready var marker: Marker = $Marker @onready var environment = $WorldEnvironment @onready var debug_label = $Debug @onready var overlay = $Overlay @@ -93,7 +91,7 @@ func _ready(): var player_instance: Player if player == player_id: player_instance = ControllablePlayer.new(player, player_name, pos, character, self) - camera.target = player_instance + camera.target = player_instance.movement_base player_set_input_enabled.connect(player_instance.set_input_enabled) is_joined = true joined.emit() @@ -248,7 +246,6 @@ func join(): mp.send_join(Global.profile["username"], Global.profile["character"]) func _process(delta): - marker.position = Global.interpolate(marker.position, marker_target, delta * 30.) update_center() if is_replay: mp.send_replay_tick(delta) @@ -283,9 +280,9 @@ func update_center(): var p: Player = v if p.character_idx >= 0: player_sum += 1 - player_center += p.position + player_center += p.movement_base.position sum += 1 - center += p.position + center += p.movement_base.position var new_center: Vector3 = Vector3(0., 0., 0.) if player_sum > 0: diff --git a/client/game.tscn b/client/game.tscn index 7c78e95e..e57c233d 100644 --- a/client/game.tscn +++ b/client/game.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=13 format=3 uid="uid://c6krh36hoqfg8"] +[gd_scene load_steps=12 format=3 uid="uid://c6krh36hoqfg8"] [ext_resource type="Script" path="res://game.gd" id="1_sftfn"] [ext_resource type="PackedScene" uid="uid://b31mlnao6ybt8" path="res://player/follow_camera.tscn" id="2_s8y6o"] [ext_resource type="Script" path="res://map/auto_setup/environment_setup.gd" id="4_hixq3"] -[ext_resource type="PackedScene" uid="uid://c0euiv7duqfp4" path="res://player/marker.tscn" id="4_igl0o"] [ext_resource type="Script" path="res://map/auto_setup/light_setup.gd" id="5_6fpff"] [ext_resource type="Script" path="res://multiplayer.gd" id="6_fbxu8"] [ext_resource type="PackedScene" uid="uid://b4gone8fu53r7" path="res://map/map.tscn" id="6_prg6t"] @@ -45,9 +44,6 @@ transform = Transform3D(-0.412548, 0.834939, -0.364255, 4.90703e-08, 0.399869, 0 shadow_enabled = true script = ExtResource("5_6fpff") -[node name="Marker" parent="." instance=ExtResource("4_igl0o")] -visible = false - [node name="Map" parent="." instance=ExtResource("6_prg6t")] [node name="Center" type="Node3D" parent="."] diff --git a/client/map/items/item.gd b/client/map/items/item.gd index b657e14f..e9671e91 100644 --- a/client/map/items/item.gd +++ b/client/map/items/item.gd @@ -35,6 +35,7 @@ func _init(owned_by_: Node3D): add_child(take_sound) add_child(put_sound) setup_sounds() + @warning_ignore("static_called_on_instance") base.position = base_position() add_child(base) owned_by = owned_by_ diff --git a/client/map/tiles/door.gd b/client/map/tiles/door.gd index b84c224e..086b0081 100644 --- a/client/map/tiles/door.gd +++ b/client/map/tiles/door.gd @@ -19,10 +19,10 @@ extends WallTile func _init(rename: String, neighbors: Array): super(rename, neighbors) - var facing = 0 + var new_facing = 0 for i in range(4): if neighbors[i] == "door": - facing = i - turn_facing(facing) + new_facing = i + turn_facing(new_facing) base.add_child(load("res://map/tiles/door.tscn").instantiate()) diff --git a/client/map/tiles/wall_tile.gd b/client/map/tiles/wall_tile.gd index 94248c03..0f3e6230 100644 --- a/client/map/tiles/wall_tile.gd +++ b/client/map/tiles/wall_tile.gd @@ -43,7 +43,7 @@ func _init(rename: String, neighbors: Array): var series = 0 for i in range(4): var i_name = neighbors[(start + i) % 4] - if is_wall(i_name): + if WallTile.is_wall(i_name): series += 1 else: break diff --git a/client/menu/controller_buttons/controller_button.gd b/client/menu/controller_buttons/controller_button.gd index fbde9b16..30aff4f2 100644 --- a/client/menu/controller_buttons/controller_button.gd +++ b/client/menu/controller_buttons/controller_button.gd @@ -24,7 +24,7 @@ func _ready(): set_texture_enabled(Global.using_joypad) Global.using_joypad_change.connect(set_texture_enabled) -func _input(event): +func _input(_event): if press_action == null: return if not is_visible_in_tree(): diff --git a/client/menu/ingame.tscn b/client/menu/ingame.tscn index 75710d41..c000ab8c 100644 --- a/client/menu/ingame.tscn +++ b/client/menu/ingame.tscn @@ -72,7 +72,7 @@ anchors_preset = 9 anchor_bottom = 1.0 offset_left = -400.0 offset_right = -90.0 -offset_bottom = 648.0 +offset_bottom = 1296.0 grow_vertical = 2 [node name="Margin" type="MarginContainer" parent="Side"] diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 17f6693f..93b05e9a 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -59,6 +59,7 @@ func _input(_event): const MAX_DT = 1./50. func _process(delta): + marker.position = Global.interpolate(marker.position, marker_target, delta * 30.) while delta > 0.001: var dt = min(delta, MAX_DT) _process_movement(dt) @@ -73,8 +74,8 @@ func _process_movement(delta): input *= 0 else: target = Vector2i( - int(floor(position.x + sin(rotation.y))), - int(floor(position.z + cos(rotation.y))) + int(floor(movement_base.position.x + sin(movement_base.rotation.y))), + int(floor(movement_base.position.z + cos(movement_base.rotation.y))) ) interact() var was_boosting = boosting @@ -153,16 +154,16 @@ func interact(): return var tile = game.map.get_tile_instance(target) if tile != null: - game.marker.set_interactive(game.get_tile_interactive(target)) - game.marker.visible = true - game.marker_target = tile.item_base.global_position + marker.set_interactive(game.get_tile_interactive(target)) + marker.visible = true + marker_target = tile.item_base.global_position if Input.is_action_just_pressed("interact"): game.mp.send_tile_interact(target, true) tile.interact() elif Input.is_action_just_released("interact"): game.mp.send_tile_interact(target, false) else: - game.marker.visible = false + marker.visible = false func set_input_enabled(b: bool): enable_input = b diff --git a/client/player/player.gd b/client/player/player.gd index c52cc6e0..c7a12598 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -30,10 +30,14 @@ var boosting := false var walking := false var username: String +var movement_base: Node3D = Node3D.new() + var character: Character = preload("res://player/character/character.tscn").instantiate() var chat_bubble: ChatBubble = preload("res://player/chat_bubble.tscn").instantiate() var item_bubble: ItemBubble = preload("res://player/item_bubble.tscn").instantiate() var effect: Effect = preload("res://player/effect.tscn").instantiate() +var marker: Marker = preload("res://player/marker.tscn").instantiate() +var marker_target = Vector3(0, 0, 0) var clear_timer: Timer = Timer.new() @@ -46,7 +50,8 @@ var _anim_angle: float = 0.0 const HAND_BASE_POSITION: Vector3 = Vector3(0, .25, .4) func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new_game: Game): - add_child(character) + add_child(movement_base) + movement_base.add_child(character) position_ = pos position_anim = pos name = new_name @@ -54,15 +59,17 @@ func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new username = new_name hand_base.position = HAND_BASE_POSITION - add_child(hand_base) + movement_base.add_child(hand_base) - add_child(chat_bubble) - add_child(item_bubble) - add_child(effect) + movement_base.add_child(chat_bubble) + movement_base.add_child(item_bubble) + movement_base.add_child(effect) clear_timer.one_shot = true clear_timer.wait_time = 5. add_child(clear_timer) + marker.visible = false + add_child(marker) character_idx = new_character_idx @@ -131,9 +138,9 @@ func _process(delta): hand_base.position.y = HAND_BASE_POSITION.y + 0.05 * sin(_anim_angle * 3) position_anim = Global.interpolate(position_anim, position_, delta * 10) rotation_anim = Global.interpolate_angle(rotation_anim, rotation_, delta * 10) - position.x = position_anim.x - position.z = position_anim.y - rotation.y = rotation_anim + movement_base.position.x = position_anim.x + movement_base.position.z = position_anim.y + movement_base.rotation.y = rotation_anim walking = walking or position_.distance_squared_to(position_anim) > 0.001 character.walking = walking character.boosting = boosting |