<?xml version="1.0" encoding="utf-8"?>
<worldGeneration version="2"
				 xmlns="http://warpdrive.lemadec.org"
				 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
				 xsi:schemaLocation="http://warpdrive.lemadec.org WarpDrive.xsd">
	
	<!--
	  An astronomical object or celestial object is a naturally occurring physical entity, association, or structure in the observable universe.
	  They can be a planet, a more abstract construct like solar system (space dimension) or the all mighty hyperspace.
	  Hyperspace is defined by its WarpDriveHyperspace dimension provider.
	  Space is a dimension with Hyperspace as its parent.
	  
	  This default configuration is fairly simple.
	  In practice, you can have several hyperspaces containing multiple spaces containing numerous planets, etc..
	  
	  When no dimension is defined, a celestial object is considered 'virtual'. An hyperspace can be virtual. A sun is (in most cases) virtual.
	  In theory, multiple planets can exists in the same Minecraft world (for example: The Twilight Forest exist on multiple planets in different star systems).
	  
	  celestialObject.id should be unique for each Celestial object.
	  When provided by WarpDrive, this is the world folder name instead of DIMxxx.
	  -->
	
	
	<!-- Top level is hyperspace, typically a galaxy. -->
	<celestialObject id="Hyperspace">
		<!--
		  size defines the world border size, measured in blocks. This is also the size of the orbit area in space, so don't go too big.
		  name defines an optional display name for the player HUD. It defaults to the celestialObject's id. 
		  description defines an optional text displayed on the player HUD.
		  name and description support colors with § or & as the escape code. '\n' is also supported.
		  nbt defines a JSON string for custom tags. It's used by WarpDrive extensions.
		  -->
		<size x="400000" z="400000" />
		<name>Hyperspace</name>
		<description>Your ship warp bubble is your\nonly protection.</description>
		
		<!--
		  dimension defines an actual game world. If it's missing, that celestialObject remains visible but you can't "land" on it.  
		  dimension.id: this is the id of the dimension. 0 is the Overworld, -1 is the Nether, 1 is the End.
		  dimension.isBreathable: this is a boolean flag defining if ambient atmosphere is breathable.
		  dimension.isHyperspace: this is a boolean flag defining if this an hyperspace dimension. 
		  dimension.gravity: this is the gravity simulation type. Valid keywords are 'none' (0.0), 'legacySpace', 'legacyHyperspace', 'normal' (1.0) or any value between 0 and 1.
		  dimension.center.x, dimension.center.z: those are the center coordinate of that dimension world border, measured in blocks. For convenience, it's usually 0, 0.
		  -->
		<dimension id="-3" isBreathable="false" isHyperspace="true" gravity="legacyHyperspace">
			<center x="0" z="0" />
			<!--
			  provider defines how the world biomes are generated. If it's missing, the mod tries to self-assign space and hyperspace dimensions.
			  provider.type: this is the provider type. Valid keywords are "auto", "WarpDriveSpace", "WarpDriveHyperspace", "other".
			  Currently only Space and Hyperspace can be provided: use other mods to generate planet world.
			  -->
			<provider type="WarpDriveHyperspace" />
		</dimension>
		
		<!--
		  skybox defines the sky rendering while inside a WarpDrive provided dimensions.
		  Those can be adjusted to your lore: in hyperspace, Babylon 5 is redish, Stargate is bluish, etc.
		  skybox.backgroundColor is self explanatory. Vanilla enforces plain black at max render distance.
		  skybox.starBrightnessBase is the minimum brightness of stars in the sky.
		  skybox.starBrightnessVanilla is how much of the vanilla star brightness is used. Space and hyperspace have no Sun, hence it's a fixed value.
		  skybox.celestialObjectOpacity is used for that eery feeling. 0 will completely hide celestial objects.
		  skybox.fogColor is the main color. Higher values increases the halo effect.
		  skybox.fogFactor is the fog opacity depending on local Sun position. Space and hyperspace have no Sun, hence it's a fixed value.
		  -->
		<skybox>
			<backgroundColor red="1.0" green="0.0" blue="0.0" />
			<starBrightnessBase>0.2</starBrightnessBase>
			<starBrightnessVanilla>0.0</starBrightnessVanilla>
			<celestialObjectOpacity>0.3</celestialObjectOpacity>
			<fogColor red="0.15" green="0.0" blue="0.0" />
			<fogFactor red="0.0" green="0.0" blue="0.0" />
		</skybox>
		
		<!-- Second level is space, typically a star system. -->
		<celestialObject id="solarSystem">
			<!--
			  parent defines the relation with a bigger enveloping celestial object.
			  parent.id (optional): when using multiple files, you can attach to a parent by its id.
			  parent.center.x, parent.center.z: this is the center coordinates in the parent dimension, measured in blocks.
			  -->
			<parent>
				<center x="50000" z="10000" />
			</parent>
			<size x="200000" z="200000" />
			<name>Space</name>
			<description>The void, filled with §6resources§r.</description>
			<dimension id="-2" isBreathable="false" gravity="legacySpace">
				<center x="0" z="0" />
				<provider type="WarpDriveSpace" />
				<!--
					generate defines the chance of different structures to generate
					generate.group, generate.name: identify the structure from the related XML files (name is optional)
				  -->
				<generate group="moon" ratio="0.00125" />
				<generate group="asteroid" ratio="0.0067" />
				<generate group="asteroids_field" ratio="0.0016" />
			</dimension>
			
			<skybox>
				<backgroundColor red="0.0" green="0.0" blue="0.0" />
				<starBrightnessBase>0.9</starBrightnessBase>
				<starBrightnessVanilla>0.0</starBrightnessVanilla>
				<celestialObjectOpacity>1.0</celestialObjectOpacity>
				<fogColor red="0.0" green="0.0" blue="0.0" />
				<fogFactor red="0.0" green="0.0" blue="0.0" />
			</skybox>
			
			<!-- Sun is just displayed, there's no actual game dimension -->
			<celestialObject id="sun">
				<parent>
					<!-- sun is at the center of the solarSystem -->
					<center x="0" z="0" />
				</parent>
				<size x="10000" z="10000" />
				<!--
				  render defines several layers from surface to high atmosphere representing the planet.
				  red, green, blue: color mixing from 0.00 (black) to 1.00 (white)
				  alpha: transparency factor from 0.00 (invisible) to 1.00 (opaque)
				  texture: optional texture to use, can come from resource pack, vanilla or the mod itself
				  periodU, periodV: optional texture rotation period over the planet, measured in seconds, defaults to 0 (disabled)
				  		Texture coordinates are defined along U and V axis (you can see them as X and Y axis in the context of the texture pixels).
				  		A periodU of 40 means the texture will do progressively shift along U axis, doing a full rotation in 40 seconds.
				  		A periodU of -80 means the texture will shift twice slower in the opposite direction. 
				  additive: optional blending function, defaults to false (multiplicative)
				  		Blending is the mathematical operation to mix existing pixel (previous layer or sky background) with the new one.
				  
				  In most cases, you want the first layer to be alpha="1.00", or the players will see the sky through the planet.
				  -->
				<render red="0.80" green="0.50" blue="0.20" alpha="1.00" texture="" />
				<render red="0.80" green="0.70" blue="0.30" alpha="0.40" texture="warpdrive:textures/celestial/surface_icy2.png" periodU="-20" periodV="104" additive="true" />
				<render red="0.80" green="0.55" blue="0.10" alpha="0.48" texture="warpdrive:textures/celestial/surface_metallic1.png" periodU="-40" periodV="140" additive="true" />
				<render red="0.80" green="0.45" blue="0.30" alpha="0.34" texture="warpdrive:textures/celestial/surface_magma1.png" periodU="24" periodV="-35" additive="true" />
				<render red="0.80" green="0.50" blue="0.20" alpha="0.08" texture="" />
				<render red="0.75" green="0.48" blue="0.20" alpha="0.08" texture="" />
				<render red="0.70" green="0.55" blue="0.20" alpha="0.08" texture="" />
			</celestialObject>
			
			<!-- Earth is the overworld (dimension.id is 0) -->
			<celestialObject id="earth">
				<parent>
					<!-- coordinates in the solar system, measured in blocks -->
					<center x="-40000" z="30000" />
				</parent>
				<size x="10000" z="10000" />
				<dimension id="0" isBreathable="true" gravity="normal">
					<center x="0" z="0" />
				</dimension>
				<render red="0.70" green="0.70" blue="0.70" alpha="1.00" texture="warpdrive:textures/celestial/surface_temperate2.png" />
				<render red="0.90" green="0.95" blue="1.00" alpha="0.15" texture="warpdrive:textures/celestial/cloud_small1.png" periodU="100" periodV="1100" additive="true" />
				<render red="0.90" green="0.90" blue="1.00" alpha="0.15" texture="warpdrive:textures/celestial/cloud_medium1.png" periodU="300" periodV="1500" additive="false" />
				<render red="0.80" green="0.70" blue="1.00" alpha="0.15" texture="warpdrive:textures/celestial/cloud_large1.png" periodU="500" periodV="2100" additive="false" />
				<render red="0.50" green="0.50" blue="1.00" alpha="0.08" />
				<render red="0.50" green="0.50" blue="1.00" alpha="0.08" />
				<render red="0.50" green="0.50" blue="1.00" alpha="0.08" />
				
				<!-- Hell is the nether. It's located below earth. In other words, falling below bedrock will drop you to the nether... -->
				<celestialObject id="hell">
					<parent>
						<center x="0" z="0" />
					</parent>
					<size x="2500" z="2500" />
					<dimension id="-1" isBreathable="true" gravity="normal">
						<center x="0" z="0" />
					</dimension>
				</celestialObject>
			</celestialObject>
			
			<!-- Pluto is The End. It's a far planet. --> 
			<celestialObject id="pluto">
				<parent>
					<center x="90000" z="70000" />
				</parent>
				<size x="4000" z="4000" />
				<dimension id="1" isBreathable="true" gravity="normal">
					<center x="0" z="0" />
				</dimension>
				<render red="1.00" green="1.00" blue="1.00" alpha="1.00" texture="minecraft:textures/blocks/end_stone.png" periodU="150" />
				<render red="0.50" green="0.50" blue="0.40" alpha="0.30" />
			</celestialObject>
			
		</celestialObject>
		
	</celestialObject>
	
</worldGeneration>
