1 | /** |
---|
2 | @addtogroup Portals Portals |
---|
3 | @ingroup Modules |
---|
4 | |
---|
5 | This module allows you to place @ref orxonox::PortalEndPoint "PortalEndPoints" in space and connect pairs of them with a @ref orxonox::PortalLink "PortalLink" in order to allow fast travelling from A to B. |
---|
6 | |
---|
7 | @section FastHowTo Fast HowTo: Including portals in a level |
---|
8 | The simplest way to use portals is show by the following piece of xml-code |
---|
9 | @code |
---|
10 | <Template name=PortalDefault> |
---|
11 | <PortalEndPoint> |
---|
12 | <attached> |
---|
13 | <Billboard material="Portals/Default" /> |
---|
14 | </attached> |
---|
15 | </PortalEndPoint> |
---|
16 | </Template> |
---|
17 | |
---|
18 | <PortalEndPoint position="0,0,0" id="1" design="PortalDefault"/> |
---|
19 | <PortalEndPoint position="-100,0,0" id="2" design="PortalDefault"/> |
---|
20 | <PortalLink fromID="1" toID="2" /> |
---|
21 | @endcode |
---|
22 | This |
---|
23 | - creates two @ref orxonox::PortalEndPoint "PortalEndPoints", one at 0,0,0 and the other at -100,0,0 |
---|
24 | - makes them visible by attaching a Billboard made of the "Portals/Default" material to each of them and |
---|
25 | - connects them, meaning that any @ref orxonox::Pawn "Pawn" which gets near 0,0,0 is immediately "warped" to -100,0,0 (but not the other way round) |
---|
26 | |
---|
27 | @section IncludePortals Detailed HowTo: Including portals in a level |
---|
28 | In the example above some default values are used. The full possibilities are shown below |
---|
29 | @code |
---|
30 | <Template name=PortalDefault> |
---|
31 | <PortalEndPoint> |
---|
32 | <attached> |
---|
33 | <Billboard material="Portals/Default" /> |
---|
34 | </attached> |
---|
35 | </PortalEndPoint> |
---|
36 | </Template> |
---|
37 | |
---|
38 | <Template name=PortalBig> |
---|
39 | <PortalEndPoint> |
---|
40 | <attached> |
---|
41 | <Billboard material="Portals/Big" /> |
---|
42 | </attached> |
---|
43 | </PortalEndPoint> |
---|
44 | </Template> |
---|
45 | |
---|
46 | <PortalEndPoint position="0,0,0" id="1" distance="40" target="MobileEntity" design="PortalDefault"/> |
---|
47 | <PortalEndPoint position="-100,0,0" id="2" distance="40" target="MobileEntity" design="PortalBig"/> |
---|
48 | <PortalLink fromID="1" toID="2" /> |
---|
49 | <PortalLink fromID="2" toID="1" /> |
---|
50 | @endcode |
---|
51 | |
---|
52 | step by step |
---|
53 | @subsection Templates "Templates" |
---|
54 | In order to make @ref orxonox::PortalEndPoint "PortalEndPoints" visible in the game there must be something visible. |
---|
55 | The idea (as shown above) is to define or include arbitrary Templates which make a PortalEndPoint visible and use them later by setting the design attribute of a @ref orxonox::PortalEndPoint "PortalEndPoint" to the template name |
---|
56 | @subsection Parameters "Parameters" |
---|
57 | - position: 3d-coordinate in space |
---|
58 | - distance (default: 50): distance at which a valid entity gets pulled in (if the end point is an entrance). |
---|
59 | - target (default: "Pawn"): the class which is able to enter this end point (if it is an entrance) |
---|
60 | - design: the name of the @ref orxonox::Template "design template" |
---|
61 | */ |
---|