Difference between revisions of "HowTo:Edit Systems:System Files"

From VsWiki
Jump to: navigation, search
(XML schema description: small repeatable info)
(Building a System: added code tags)
Line 87: Line 87:
 
==Building a System==
 
==Building a System==
 
To manually create a system, follow these steps;
 
To manually create a system, follow these steps;
* Always put the '''<system>''' tags first.  
+
* Always put the <code><system></code> tags first.  
* Next, add X lights in the system, where X is the number of stars in the system.  
+
* Next, add X <code><light></code> tags in the system, where X is the number of stars in the system.  
* After that, insert one object inside the system that has x,y,z coordinates. Give it ReflectNoLight"true" and light "some_light_number" to make it be a sun. The sun should have one of the textures inside the stars/ directory.
+
* After that, insert one object inside the system that has <code>x,y,z</code> coordinates. Give it <code>ReflectNoLight="true"</code> and <code>light="some_light_number"</code> to make it be a sun. The sun should have one of the textures inside the <code>stars/</code> directory.
 
* Inside that, maybe put another sun orbitting the first sun if the system is binary.  
 
* Inside that, maybe put another sun orbitting the first sun if the system is binary.  
* Add a bunch of planets, and add units or more planets around those. Planets' textures should be inside the planets directory. You can also have a nebula or an asteroid field if you want.
+
* Add a bunch of planets, and add units or more planets around those. Planets' textures should be inside the <code>planets</code> directory. You can also have a nebula or an asteroid field if you want.
* Finally, close with the '''</system>''' tag.
+
* Finally, close with the <code></system></code> tag.
  
 
Note that for a completely circular orbit, make ri=sk, rj=sj and rk=si. <ri,rj,rk> Is the relative position to the planet when position=0. <si,sj,sk> is the relative position to the planet when position=1.57 (PI/2). Then make position 0 (normally) and set day to a fairly high number and year to be extremely high.
 
Note that for a completely circular orbit, make ri=sk, rj=sj and rk=si. <ri,rj,rk> Is the relative position to the planet when position=0. <si,sj,sk> is the relative position to the planet when position=1.57 (PI/2). Then make position 0 (normally) and set day to a fairly high number and year to be extremely high.

Revision as of 10:25, 12 April 2005

thumb_arrow_up.png Edit Systems

"Hand-made" System Files

These systems take much longer, because you have to do all of the generator's work by hand. Although you may think that using the milky_way.xml file is so much better for that reason, think about systems like Sol (sol_sector/sol) where you want exact exactness to occur in the system file because adventurers who explore it will look at every detail that can not be perfected with even random numbers. I used this method for the starting system in the 3.x releases, enigma_sector/heavens_gate.system

XML schema description

<system> ... </system> -- Marks the beginning and end of the XML file.

  • name -- The name of the system.
  • ScaleSystem - The scale of the system.
  • reflectivity - ???
  • background - The background cube map to use (NO extension like .png, .jpg, etc.)
  • nearstars - The number of near stars at a given time.
  • stars - The number of (far?) stars at a given time.
  • starspread - The distance between the stars (?).
  • x, y, z - The coordinates of the system. Implemented long ago for possible use with a map, but not used yet.
  • <light> ... </light> - (repeatable) Creates a light that can be referenced later.
    • <attenuated> ... </attenuated> - Specifies the color of attenuated light that is generated.
      • red, green, blue, alfa -- Specify the value (between 0 and 1) of the color.
    • <ambient> ... </ambient> - Specifies the color of ambient light that is generated.
      • red, green, blue, alfa -- Specify the value (between 0 and 1) of the color.
    • <diffuse> ... </diffuse> - Specifies the color of diffuse light that is generated.
      • red, green, blue, alfa -- Specify the value (between 0 and 1) of the color.
    • <specular> ... </specular> - Specifies the color of specular light that is generated.
      • red, green, blue, alfa -- Specify the value (between 0 and 1) of the color.
  • <planet> ... </planet> - (repeatable) (ALIAS: jump) This tag creates a planet (or sun if it generates light).
    • NOTE: planets and jumps can have any (not light) tags nested inside. This creates the nested tag orbiting aroung the planets.
    • name - The name of the planet.
    • file - The texture of the planet (also used to decide which products are sold).
    • radius - The radius of the planet.
    • alpha - The blend mode of the texture
    • gravity - The gravity of the planet. I think that it only affects other planets orbiting it, not units.
    • red, green, blue, alfa -- The color of the planet (not the color of the light it generates). I think that "alfa" is correct, not "alpha".
    • ReflectNoLight - does the planet not reflect light? Defaults to false, do you shouldn't have to worry about this most of the time.
    • light - A reference to one of the lights above that this sun generates. This is the criteria for a planet becoming a sun.
    • destinations - A space seperated list of the destinations that this jump point will take you to. (usually only one, but more will make the jump point random). NOTE that the presence of this attribute is the only criteria for the planet being a jump point, not the name of the tag, which is just to make it clearer.
    • citylights - A texture for using city lights (looks like [Texturefile]wrapx[WrapXValue]wrapy[WrapYValue])
    • insideout - Is the texture inside out? (?)
    • For "suns" that do not orbit:
      • x, y, z - The position of the planet.
    • For Planets that orbit around another planet:
      • ri, rj, rk - the farthest point of the orbit (vector x,y,z in meters) (see here)
      • si, sj, sk - the nearest point of the orbit (vector x,y,z in meters)
    • year - The amount of time for a year (?)
    • day - The amount of time for a day (?)
    • position - The current position on the orbiting elipse (in radians).
    • <citylights ... /> - Lights that appear on a planet.
      • file - The texture.
      • alpha - The blend mode of the texture
      • radius - A radius of the lights (only if different than the planet).
      • wrapx, wrapy - How much the texture wraps.
      • insideout - Is the texture inside out? (?)
    • <atmosphere ... /> - The atmosphere of the planet (if any)
      • file - The texture.
      • alpha - The blend mode of the texture
      • radius - the radius of the atmosphere (should be greater than planet's).
    • <ring ... /> - (repeatable) A planetary ring.
      • file - The texture.
      • alpha - The blend mode of the texture
      • innerradius, outerradius - the inner/outer radii of the ring (should be greater than planet's and outer should be more than inner).
      • wrapx, wrapy - How much the texture wraps.
      • ri, rj, rk - the farthest point of the orbit (vector x,y,z in meters) (see here)
      • si, sj, sk - the nearest point of the orbit (vector x,y,z in meters)
      • numslices - ???
    • <SpaceElevator ... /> - (repeatable) An elevator to space (?)
      • file - The file for the elevator.
      • direction - The direction the elevator goes in. Can be d(own), u(p), l(eft), r(ight), b(ack) or f(ront [default]).
      • faction - The faction that owns the elevator.
    • <unit, building, enhancement, vehicle, asteroid, nebula ... /> - (repeatable) An object.
      • NOTE: that these can NOT have anything orbiting them.
      • name - The name of the unit.
      • file - The name of the unit file.
      • faction - The name of the unit's faction.
      • destinations - A space seperated list of the destinations that this will take you to. (usually only one, but more will make the jump point random).
      • insideout - Is the texture inside out? (?)
      • difficulty - A scaling factor???
      • For units that do not orbit:
        • x, y, z - The position of the planet.
      • For units that orbit around another planet:
        • ri, rj, rk - the farthest point of the orbit (vector x,y,z in meters) (see here)
        • si, sj, sk - the nearest point of the orbit (vector x,y,z in meters)
      • year - The amount of time for a year (?)
      • day - The amount of time for a day (?)
      • position - The current position on the orbiting elipse (in radians).

Building a System

To manually create a system, follow these steps;

  • Always put the <system> tags first.
  • Next, add X <light> tags in the system, where X is the number of stars in the system.
  • After that, insert one object inside the system that has x,y,z coordinates. Give it ReflectNoLight="true" and light="some_light_number" to make it be a sun. The sun should have one of the textures inside the stars/ directory.
  • Inside that, maybe put another sun orbitting the first sun if the system is binary.
  • Add a bunch of planets, and add units or more planets around those. Planets' textures should be inside the planets directory. You can also have a nebula or an asteroid field if you want.
  • Finally, close with the </system> tag.

Note that for a completely circular orbit, make ri=sk, rj=sj and rk=si. <ri,rj,rk> Is the relative position to the planet when position=0. <si,sj,sk> is the relative position to the planet when position=1.57 (PI/2). Then make position 0 (normally) and set day to a fairly high number and year to be extremely high.

Examples

See also