Skip to content

Celestial Object Entry

fishcute edited this page Nov 11, 2022 · 35 revisions

Celestial Objects can be registered in sky.json


Registered celestial objects must be located in assets\celestial\sky\(DIMENSION_ID)\objects, otherwise they will not be loaded.

Celestial objects are things that are rendered in the sky. The vanilla sun and moon are examples of celestial objects.

Entries:

  • type, String: The type of object the object is. [More details]
  • texture, File path: The file path to the texture of the object. If this value is present, and the type entry is empty, the object's type will automatically get set to texture.
  • skybox, JSON Object: Data for skybox rendering. Will only get read if the object's type is skybox. [More details]
  • solid_color, String: Renders the object as a solid color (the color inputted here). If this value is present, and the type and texture entries are empty, the object's type will automatically get set to color.
  • display, JSON Object: Details for display. If vertex has a value, this will be ignored. [More details]
  • vertex, String list: Details for custom vertex rendering. [More details]
  • rotation, JSON Object: Controls the rotation of the object. [More details]
  • properties, JSON Object: Object properties. [More details]
  • populate, JSON Object: Controls the populate feature for the object. [More details]

Display

Entries:

  • scale, Equation: Scale of the object.
  • pos_x, Equation: Added position X of the object.
  • pos_y, Equation: Added position Y of the object.
  • pos_z, Equation: Added position Z of the object.
  • distance, Equation: Distance of the object to the camera.

Object types

skybox:

Renders the object as a skybox.

Entries:

  • texture, String: Texture of the skybox (Optional).

color:

Renders the object with a solid color.

Entries:

  • solid_color: Color Entry: Color of the skybox.

texture:

Renders the object with a texture.

Entries:

  • texture, String: Texture of the object.

Properties

Extra miscellaneous properties for objects

Entries:

  • has_moon_phases, Boolean: Determines if the object has moon phases. Texture should be formatted like vanilla moon_phases texture.
  • moon_phase, Equation: The moon phase of the object. Only works if has_moon_phase is enabled.
  • is_solid, Boolean: Determines if other objects can render through the object. Removes alpha from the object too.
  • red, Equation: Amount of red in object texture.
  • green, Equation: Amount of green in object texture.
  • blue, Equation: Amount of blue in object texture.
  • alpha, Equation: Alpha of object.
  • ignore_fog, Boolean: Determines if the object should render with fog applied.

Populate

Allows for multiple duplicate objects to be rendered in different places, scales, and rotations. If enabled, the display and rotation categories will be ignored. Populate objects cannot be a skybox.

Entries:

  • count, Integer: Number of objects to create.
  • rotation, JSON Object: Rotation of objects in sky. Unlike normal rotation entries, this has different possible values. [More details]
  • display, JSON Object: Controls what the objects will look like. [More details]
  • objects, JSON Object List: Allows for the creation of populate objects with specified values. [More details]
  • per_object_calculations: Determines if the rotation, position, etc. are calculated for each populate object.*

* As of the 1.2 update, the rotation, position, and other things are calculated once, and applied to every single populate object. With per_object_calculations, the rotation, position, and other things are calculated for each populate object.

Rotation (Populate)

Values from the original rotation category will be added onto these values.

Entries:

  • min_degrees_x, Float: The minimum degrees X objects can have.
  • max_degrees_x, Float: The minimum degrees X objects can have.
  • min_degrees_y, Float: The minimum degrees Y objects can have.
  • max_degrees_y, Float: The minimum degrees Y objects can have.
  • min_degrees_z, Float: The minimum degrees Z objects can have.
  • max_degrees_z, Float: The minimum degrees Z objects can have.

Display (Populate)

Entries:

  • min_scale, Float: The minimum scale objects can have.
  • max_scale, Float: The maximum scale objects can have.
  • min_pos_x, Float: The minimum added position X the object can have.
  • max_pos_x, Float: The maximum added position X the object can have.
  • min_pos_y, Float: The minimum added position Y the object can have.
  • max_pos_y, Float: The maximum added position Y the object can have.
  • min_pos_z, Float: The minimum added position Z the object can have.
  • max_pos_z, Float: The maximum added position Z the object can have.
  • min_distance, Float: The minimum distance to the camera the object can have.
  • max_distance, Float: The maximum distance to the camera the object can have.

Objects (Populate)

The object list is a JSON Object list. Contains populate object entries.

Example:

{
	"populate": {
		"objects": [{
				"degrees_x": 0,
				"degrees_y": 0,
				"degrees_z": 0,
				"scale": 0
			},
			{
				"degrees_x": 30,
				"degrees_y": 0,
				"degrees_z": 30,
				"scale": 10
			}
		]
	}
}

Populate object entry (Populate)

An entry for a populate object with specific values. Will still have values from the original rotation value added on, and will ignore values in the populate rotation entries and the populate display entries.

Entries:

  • scale, Float: The scale of the populate object
  • pos_x, Float: The X position of the populate object.
  • pos_y, Float: The Y position of the populate object.
  • pos_z, Float: The Z position of the populate object.
  • degrees_x, Float: The X rotation of the populate object.
  • degrees_y, Float: The Y rotation of the populate object.
  • degrees_z, Float: The Z rotation of the populate object.
  • distance, Float: The distance of the populate object.

Example:

{
  	"pos_x": 0,
	"pos_y": 0,
	"pos_z": 0,
	"degrees_x": 45,
	"degrees_y": 0,
	"degrees_z": 0,
	"scale": 0
}
Clone this wiki locally