---
# System prepended metadata

title: Untitled

---

```mermaid
classDiagram
class Room {
-description: String
-exits: HashMap<String, Room> 
-getExitString() String
+setExit(String direction, Room neighbor) void
+getShortDescription() String
+getLongDescription() String
+getExit(String direction) String
}

class Parser {
-commands: CommandWords
-reader: Scanner
+getCommand() command
+showCommands() void
}

class CommandWords {
-validCommand: HashMap<String, CommandWord>
+getCommandWord(String) CommandWord
+isCommand(String) boolean
+showAll() void
}

class CommandWord {
GO
QUIT
HELP
UNKNOWN
-commandString: String
+toString() String
}

class Game {
-parser: Parser
-currentRoom: Room
-createRooms() void
-printWelcome() void
-processCommand(Command) boolean
-printHelp() void
-goRoom(Command) void
-quit(Command) boolean
+play() void
+getCommand() Command
+showCommands() void
+pickUp() void
+searchRoom() void 
}

class Command {
-commandWord: CommandWord
-secondWord: String
+getCommandWord() CommandWord
+getSecondWord() String
+isUnknown() boolean
+hasSecondWord() boolean
}

class Item {
-name: String
-weight: double
-id: int
+getName() String
}

class Material {
-weight: double
}

class EnergyType{
<<enumeration>>
NONE
WIND
WATER
SUN
}

class Product {
-energyType: String
-weight: double
}

class Inventory {
-items: ArrayList<Item>
-weightLimit: double
}

class CraftingTable {
-materialRecipe: int[]
-productId: int
}

class ProductPlace {
-efficiency: double
-desiredEnergyId: int
-flavorText: String
+getFlavorText() String
+getEfficiency(): double
}

class Procent {
-
}

Room --> ProductPlace
Game --> Room
Game --> Parser
Game --> Inventory
Inventory --> Item
Parser --> Command
Parser --> CommandWords
CommandWords --> CommandWord
<<enumeration>> CommandWord
Item <|-- Product
Item <|-- Material
Room <|-- CraftingTable
