From d03d8a7996e1e041897baa1bf0921d35c8bedad5 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 5 Jan 2025 14:19:21 -0500 Subject: [PATCH] look command --- src/main/java/org/studiorailgun/interact/GameLoop.java | 2 ++ .../java/org/studiorailgun/sim/character/Character.java | 8 ++++++++ .../org/studiorailgun/sim/eval/command/LookCommand.java | 6 +++++- src/main/java/org/studiorailgun/sim/space/Location.java | 8 ++++++++ .../studiorailgun/sim/space/gen/LocationGenerator.java | 2 ++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/studiorailgun/interact/GameLoop.java b/src/main/java/org/studiorailgun/interact/GameLoop.java index 46d8a8c..932b756 100644 --- a/src/main/java/org/studiorailgun/interact/GameLoop.java +++ b/src/main/java/org/studiorailgun/interact/GameLoop.java @@ -8,6 +8,7 @@ import org.studiorailgun.sim.character.gen.PlayerCharSourcer; import org.studiorailgun.sim.eval.GameCommandParser; import org.studiorailgun.sim.eval.Simulator; import org.studiorailgun.sim.space.gen.WorldGenerator; +import org.studiorailgun.sim.space.util.LocationResolver; /** * The game loop @@ -27,6 +28,7 @@ public class GameLoop { GameCommandParser.init(); Globals.world = WorldGenerator.generateWorld(); Globals.playerCharacter = PlayerCharSourcer.getPlayerCharacter(); + Globals.playerCharacter.move(LocationResolver.first(Globals.world)); try (Scanner scan = new Scanner(System.in)) { String prompt = ""; diff --git a/src/main/java/org/studiorailgun/sim/character/Character.java b/src/main/java/org/studiorailgun/sim/character/Character.java index 5fe580f..9727a1b 100644 --- a/src/main/java/org/studiorailgun/sim/character/Character.java +++ b/src/main/java/org/studiorailgun/sim/character/Character.java @@ -104,6 +104,14 @@ public class Character { this.locationId = locationId; } + /** + * Gets the location this character is in + * @return The location + */ + public Location getLocation(){ + return Globals.world.getLocation(this.locationId); + } + } diff --git a/src/main/java/org/studiorailgun/sim/eval/command/LookCommand.java b/src/main/java/org/studiorailgun/sim/eval/command/LookCommand.java index 45fc2eb..4908292 100644 --- a/src/main/java/org/studiorailgun/sim/eval/command/LookCommand.java +++ b/src/main/java/org/studiorailgun/sim/eval/command/LookCommand.java @@ -1,5 +1,8 @@ package org.studiorailgun.sim.eval.command; +import org.studiorailgun.Globals; +import org.studiorailgun.sim.space.Location; + /** * Handler for look command */ @@ -9,7 +12,8 @@ public class LookCommand { * Handles a look command */ public static void handle(String input){ - System.out.println("Look command.."); + Location playerLoc = Globals.playerCharacter.getLocation(); + playerLoc.describe(); } } diff --git a/src/main/java/org/studiorailgun/sim/space/Location.java b/src/main/java/org/studiorailgun/sim/space/Location.java index 2be6f9f..d28f51f 100644 --- a/src/main/java/org/studiorailgun/sim/space/Location.java +++ b/src/main/java/org/studiorailgun/sim/space/Location.java @@ -32,6 +32,14 @@ public class Location { */ transient List items = new LinkedList(); + + /** + * Describes the location + */ + public void describe(){ + System.out.println("A " + type); + } + /** * Constructor * @param type The type of the location diff --git a/src/main/java/org/studiorailgun/sim/space/gen/LocationGenerator.java b/src/main/java/org/studiorailgun/sim/space/gen/LocationGenerator.java index d5b0fec..812523e 100644 --- a/src/main/java/org/studiorailgun/sim/space/gen/LocationGenerator.java +++ b/src/main/java/org/studiorailgun/sim/space/gen/LocationGenerator.java @@ -1,5 +1,6 @@ package org.studiorailgun.sim.space.gen; +import org.studiorailgun.Globals; import org.studiorailgun.sim.space.Location; /** @@ -14,6 +15,7 @@ public class LocationGenerator { */ public static Location generate(String type){ Location rVal = new Location(type); + Globals.world.registerLocation(rVal); return rVal; }