|
| 1 | +# The Holodeck or the Holography Laboratory |
| 2 | + |
| 3 | +| Designers | Implemented | GitHub Links | |
| 4 | +|------------|-------------|--------------| |
| 5 | +| CptJeanLuc | :x: No | TBD | |
| 6 | + |
| 7 | +## Overview |
| 8 | + |
| 9 | +Imagine a room on a station or shuttle which, upon interacting with a computer console you can have instantly remapped into one of many pre-programmed, or in-round assembled structures. |
| 10 | + |
| 11 | +## Background |
| 12 | + |
| 13 | +Currently we have various systems which generate dungeons, place entities into a paused map with the ability to return them, and replace station and planet tiles at whim. |
| 14 | +These are the core functionalities required for a holodeck. |
| 15 | + |
| 16 | +## Gafaw! but how!? |
| 17 | + |
| 18 | +The base principle, is that special holodeck walls and floor tiles can be placed and linked to from a holodeck computer console. |
| 19 | +The holodeck should be required to be enclosed by special walls, airlocks, and floor tiles. Should the enclosure break it should cease functioning. |
| 20 | +The computer console can select from a list of (a) premapped dungeon-like layouts, or (b) saved layouts that were constructed in round on the holodeck. |
| 21 | +When the console selects a premapped layout, it builds the holodeck room, walls, tiles, and entities within. It also marks all of these with a relevant HoloDeckWallComponent, HoloDeckFloorComponent, or HoloDeckEntityComponent. |
| 22 | +When the computer console is set to an empty state, the holodeck room should be returned to the state it was initially, comprised of the initial special walls and floors. |
| 23 | +When walls/tiles/entities are removed from the holodeck, they should be moved and placed on a paused map, or easier retrieval, and continuity. |
| 24 | +After the first time a premapped layout is selected, it should remain persistent via this method of moving the relevant entities to a paused map and back. |
| 25 | +If for any reason the holodeck is rendered non-functional, either by power loss, selecting an empty state on the console, or breaking the enclosure, the holodeck should return to the initial state. |
| 26 | +Entities with the HoloDeckEntityComponent should cease existing if they are removed from on top of a tile with an active HoloDeckFloorComponent. |
| 27 | + |
| 28 | +The console should not function, thereby preventing remapping, while a player is on top of a tile with a HoloDeckFloorComponent, active or not. |
| 29 | + |
| 30 | +Preventing damage to players while on top of a tile with an active HoloDeckFloorComponent, unless the console is emagged, would be quite funny. Thats a stretch goal though. |
| 31 | + |
| 32 | +Somehow allowing players to ask for items in local chat and have them spawn in the holodeck, marked with the HoloDeckEntityComponent. This is a stretch goal. |
| 33 | + |
| 34 | +Either prevent construction within the holodeck, or make constructions made with any components having the HoloDeckEntityComponent also be marked with that component. |
| 35 | + |
| 36 | +How to make it non-euclidean is left as an exercise for the reader. (joke) |
0 commit comments