aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/map/tile_factory.gd8
-rw-r--r--data/maps/debug.yaml12
-rw-r--r--pixel-client/src/game.rs11
-rw-r--r--pixel-client/src/main.rs1
4 files changed, 22 insertions, 10 deletions
diff --git a/client/map/tile_factory.gd b/client/map/tile_factory.gd
index b43a568a..36204b3e 100644
--- a/client/map/tile_factory.gd
+++ b/client/map/tile_factory.gd
@@ -66,13 +66,13 @@ static func produce(tile_name: String, node_name: String, neighbors: Array) -> T
return Book.new(node_name, neighbors)
"conveyor":
return Conveyor.new(node_name, neighbors)
- "item-portal-in":
+ "black-hole-counter":
return ItemPortal.new(node_name, neighbors, false)
- "item-portal-out":
+ "white-hole-counter":
return ItemPortal.new(node_name, neighbors, true)
- "player-portal-in":
+ "black-hole":
return PlayerPortal.new(node_name, neighbors, false)
- "player-portal-out":
+ "white-hole":
return PlayerPortal.new(node_name, neighbors, true)
var t:
push_warning("tile %s unknown" % t)
diff --git a/data/maps/debug.yaml b/data/maps/debug.yaml
index 8be2bda4..d571dc13 100644
--- a/data/maps/debug.yaml
+++ b/data/maps/debug.yaml
@@ -54,10 +54,10 @@ tiles:
"7": fish-crate
"X": trash
- "¹": item-portal-in
- "²": item-portal-out
- "³": player-portal-in
- "⁴": player-portal-out
+ "¹": black-hole-counter
+ "²": white-hole-counter
+ "³": black-hole
+ "⁴": white-hole
"c": chair
"~": floor
".": floor
@@ -115,8 +115,8 @@ walkable:
- chair
- grass
- path
- - player-portal-in
- - player-portal-out
+ - black-hole
+ - white-hole
collider:
- wall
diff --git a/pixel-client/src/game.rs b/pixel-client/src/game.rs
index 13ed1709..cc1645d9 100644
--- a/pixel-client/src/game.rs
+++ b/pixel-client/src/game.rs
@@ -155,6 +155,7 @@ impl Game {
let movement_packet = player
.movement
.update(&self.collision_map, direction, boost, dt);
+
if send_movement {
self.network.queue_out.push_back(movement_packet);
}
@@ -167,6 +168,16 @@ impl Game {
self.camera_center.exp_to(player.movement.position, dt * 5.);
}
+ for p1 in &self.player_ids {
+ for p2 in &self.player_ids {
+ if p1 != p2 {
+ if let Some([p1, p2]) = self.players.get_many_mut([p1, p2]) {
+ p1.movement.collide(&mut p2.movement, dt);
+ }
+ }
+ }
+ }
+
for player in self.players.values_mut() {
if let Some(item) = &mut player.item {
item.parent_position = player.movement.position;
diff --git a/pixel-client/src/main.rs b/pixel-client/src/main.rs
index 0ebe7b44..8c140fc5 100644
--- a/pixel-client/src/main.rs
+++ b/pixel-client/src/main.rs
@@ -15,6 +15,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+#![feature(map_many_mut)]
use clap::{Parser, Subcommand};
use game::Game;
use hurrycurry_protocol::glam::Vec2;