DavidRieman / WheelMUD

C# Multiple-User Dimension (MUD) framework
56 stars 68 forks source link

Initial Furnishings Implementation #145

Open DavidRieman opened 2 years ago

DavidRieman commented 2 years ago

Per the World Interaction Story there is a description of the concept of "Furnishings". In that example, a room description like "save for some scratches upon one of the walls" indicates something that can be further examined in the room, that isn't a full-blown Thing. It is merely a tool for descriptive immersion.

So, any Thing (such as a "room" Thing) could have a List of Furnishing objects. Those objects could have properties like:

For this ticket, we should inject a Furnishing into the game world for demonstration of these capabilities. Examine / look commands should be updated to search for Furnishings as targets, and use the Renderer system with a DefaultFurnishingRenderer to print any targeted furnishing's description. Ideally we should be able to target furnishings not just on the player's parent (room) but also the player's inventory and other Things inside our room, etc.

(OLC capabilities are probably out of scope for this ticket.) (Do not confuse Furnishings with Furniture, like building a "couch" by giving a Thing a SittableBehavior and ImmobileBehavior or whatnot.)

DavidRieman commented 2 years ago

This is partially done. There is a 'furnishings' command to work with editing these. Need to dig in and see what else should get done before closing this ticket though - like getting the feature to use a default Renderer import for customizability.