Jeder Raum im Efferdland muss bestimmte Elemente enthalten, damit er in das Konzept passt. Wichtige Elemente im Efferdland sind z.B. P_ENVIRONMENT und P_TERRAIN, die (fast) immer gesetzt werden müssen.
P_TERRAIN:
P_TERRAIN beschreibt den Landschaftstypen und ist definiert in /sys/room/terrain.h. Das Setzen dieser Property ist natürlich nur ausserhalb von Gebäuden sinnvoll.
Folgende Terrain Typen gibt es im Efferdland
T_AIR | in der Luft | z.B. in einem Ballon |
T_UNDER_WATER | unter Wasser | beim Tauchen |
T_AT_WATER | am Wasser | z.B. Flussufer |
T_IN_WATER | im Wasser | schwimmend |
T_HILL | auf einem Hügel | |
T_MOUNTAIN | im Gebirge | |
T_PLAIN | in einer Ebene | |
T_SWAMP | im Sumpf | |
T_DESERT | in einer Wüste | |
T_FOREST | Waldgebiet | |
T_URBAN | Stadtgebiet | |
T_FLOODPLAIN | im Auenegebiet | eines Flusses… |
T_GARDEN | im Garten | auch Parks u.ä. |
T_MOOR | im Moor | |
T_UNDERGROUND | im Untergrund | Höhlen, Gänge, Tunnel… |
T_JUNGLE | im Dschungel | auch Urwälder |
T_COPSE | im Unterholz | |
T_ICE | Eislandschaft | |
T_MEADOW | Weisen / Wiesen | |
T_VELD | in einer Steppe | |
T_VILLAGE | in einem Dorf | |
T_POISEND | giftige Umgebung | z.B. im Vulkankrater |
T_PATH | auf einem Pfad | |
T_TRACK | auf einem Weg | |
T_ROAD | auf einer Strasse |
Es können auch mehrere Terrains gleichzeitig gesetzt werden. Dies ist nötig, wenn man sich z.B. auf einen Weg in einem Dorf befindet. Die Syntax hierfür ist: SetProp(P_TERRAIN, T_TRACK | T_VILLAGE);
Wie gesagt ist P_TERRAIN zwingend zu setzen! Diese Property sollte ernst genommen werden und es ist untersagt, hier irgendwelchen Mumpitz einzutragen!
P_ENVIRONMENT:
Ähnlich wichtig ist die Property P_ENVIRONMENT. Sie beschreibt die Eigenschaften einer Umgebung, z.B. Temperatur. Höhe über NN und Windgeschwindigkeiten. Auch diese Property muss in jedem Raum gesetzt werden. P_ENVIRONMENT ist definiert in /sys/environment.h
P_ENVIRONMENT ist ein Mapping und kann folgende Werte enthalten:
ENV_TEMPERATURE | Temperatur | in Grad Celsius |
ENV_ENVSPEED | Umgebungs Geschwindigkeit | 1 Beaufort (Wertebereich: 1-12), unter Wasser: Strömung |
ENV_ALTITUDE | Höhe | über NN in Meter |
ENV_WATER | Wassertiefe | in Meter |
ENV_HUMIDITY | Luftfeuchtigkeit | In % |
Aus ENV_TEMPERATURE und ENV_SPEED wird die Property P_WINDCHILL
berechnet, die nur abfragbar ist und die gefühlte Temperatur enthält. Hier ein Beispiel, wie man P_ENVIRONMENT richtig setzt.
SetProp(P_ENVIRONMENT,
([
ENV_ENVSPEED: 3, // Windstärke 3
ENV_TEMPERAURE: -5 // -5 Grad Celsius
ENV_ALTITUDE: 300 // Meter Höhe
]));
Schreibt man P_ENVIRONMENT in ein STD-File und möchte man z.B. nur die Temperatur ändern, weil man z.B. immer weiter in den kalten Norden geht, muss man nicht die komplette Property neu setzen, sondern nur den Wert, den man ändern möchte:
// So ändert man nur die Temperatur und lässt alle anderen Werte unberührt:
SetProp(P_ENVIRONMENT,
([
ENV_TEMPERATURE: -10,
]));
P_ENVIRONMENT enthält von Haus aus STD-Werte:
ENV_ENVSPEED | Windgeschwindigkeit | Im Raum: 0 Draußen: 1 |
ENV_HUMIDITY | Luftfeuchtigkeit | Im Raum: 50% Draußen: 60% |
ENV_TEMPERATURE | Temperatur. | Im, Raum: 20 Draußen: 15 |
ENV_ALTITUDE | Höhe | 3m über NN |
LG, It@Efferdland