summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-08 19:41:00 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-08 19:41:00 +0200
commitc0d4eb9da614c02dc5dc4a15db420014f592ba45 (patch)
treebc77af599e36432a0bfbc91d32277b229abdaad4
parentb43be80a63e54948656313d9862e0523a3aed31f (diff)
parent606d995ab7ca459593807fc895c1ec39dacac878 (diff)
downloadhurrycurry-c0d4eb9da614c02dc5dc4a15db420014f592ba45.tar
hurrycurry-c0d4eb9da614c02dc5dc4a15db420014f592ba45.tar.bz2
hurrycurry-c0d4eb9da614c02dc5dc4a15db420014f592ba45.tar.zst
Merge branch 'master' of https://codeberg.org/metamuffin/hurrycurry
-rw-r--r--client/game.gd9
-rw-r--r--client/game.tscn6
-rw-r--r--client/map/items/item.gd1
-rw-r--r--client/map/tiles/door.gd6
-rw-r--r--client/map/tiles/wall_tile.gd2
-rw-r--r--client/menu/controller_buttons/controller_button.gd2
-rw-r--r--client/menu/ingame.tscn2
-rw-r--r--client/player/controllable_player.gd13
-rw-r--r--client/player/player.gd23
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