9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-30 04:29:05 +00:00

Schema good

This commit is contained in:
Daniel Mills
2020-09-12 17:44:52 -04:00
parent 5d35fc80d5
commit 42907b5a5d
15 changed files with 1122 additions and 30 deletions

View File

@@ -1,23 +1,28 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("Defines if an object is allowed to place in carvings, surfaces or both.")
public enum CarvingMode
{
@Desc("Only place this object on surfaces (NOT under carvings)")
@DontObfuscate
SURFACE_ONLY,
@Desc("Only place this object under carvings (NOT on the surface)")
@DontObfuscate
CARVING_ONLY,
@Desc("This object can place anywhere")
@DontObfuscate
ANYWHERE;
public boolean supportsCarving()
{
return this.equals(ANYWHERE) || this.equals(CARVING_ONLY);
}
public boolean supportsSurface()
{
return this.equals(ANYWHERE) || this.equals(SURFACE_ONLY);

View File

@@ -1,15 +1,20 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("Represents a location where decorations should go")
public enum DecorationPart
{
@Desc("The default, decorate anywhere")
@DontObfuscate
NONE,
@Desc("Targets shore lines (typically for sugar cane)")
@DontObfuscate
SHORE_LINE,
@Desc("Target sea surfaces (typically for lilypads)")
@DontObfuscate
SEA_SURFACE
}

View File

@@ -1,15 +0,0 @@
package com.volmit.iris.object;
import com.volmit.iris.util.DontObfuscate;
public enum Envelope
{
@DontObfuscate
EVERYWHERE,
@DontObfuscate
CELLS,
@DontObfuscate
VEINS,
}

View File

@@ -1,15 +1,20 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("Represents a basic font style to apply to a font family")
public enum FontStyle
{
@Desc("Plain old text")
@DontObfuscate
PLAIN,
@Desc("Italicized Text")
@DontObfuscate
ITALIC,
@Desc("Bold Text")
@DontObfuscate
BOLD,
}

View File

@@ -1,27 +1,36 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("Represents a biome type")
public enum InferredType
{
@Desc("Represents any shore biome type")
@DontObfuscate
SHORE,
@Desc("Represents any land biome type")
@DontObfuscate
LAND,
@Desc("Represents any sea biome type")
@DontObfuscate
SEA,
@Desc("Represents any cave biome type")
@DontObfuscate
CAVE,
@Desc("Represents any river biome type")
@DontObfuscate
RIVER,
@Desc("Represents any lake biome type")
@DontObfuscate
LAKE,
@Desc("Defers the type to whatever another biome type that already exists is.")
@DontObfuscate
DEFER;
}

View File

@@ -1,87 +1,116 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("An interpolation method (or function) is simply a method of smoothing a position based on surrounding points on a grid. Bicubic for example is smoother, but has 4 times the checks than Bilinear for example. Try using BILINEAR_STARCAST_9 for beautiful results.")
public enum InterpolationMethod
{
@Desc("No interpolation. Nearest Neighbor (bad for terrain, great for performance).")
@DontObfuscate
NONE,
@Desc("Uses 4 nearby points in a square to calculate a 2d slope. Very fast but creates square artifacts. See: https://en.wikipedia.org/wiki/Bilinear_interpolation")
@DontObfuscate
BILINEAR,
@Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 3 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.")
@DontObfuscate
STARCAST_3,
@Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 6 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.")
@DontObfuscate
STARCAST_6,
@Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 9 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.")
@DontObfuscate
STARCAST_9,
@Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 12 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.")
@DontObfuscate
STARCAST_12,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.")
@DontObfuscate
BILINEAR_STARCAST_3,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.")
@DontObfuscate
BILINEAR_STARCAST_6,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.")
@DontObfuscate
BILINEAR_STARCAST_9,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.")
@DontObfuscate
BILINEAR_STARCAST_12,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.")
@DontObfuscate
HERMITE_STARCAST_3,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.")
@DontObfuscate
HERMITE_STARCAST_6,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.")
@DontObfuscate
HERMITE_STARCAST_9,
@Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.")
@DontObfuscate
HERMITE_STARCAST_12,
@Desc("Uses bilinear but on a bezier curve. See: https://en.wikipedia.org/wiki/Bezier_curve")
@DontObfuscate
BILINEAR_BEZIER,
@Desc("Uses Bilinear but with parametric curves alpha 2.")
@DontObfuscate
BILINEAR_PARAMETRIC_2,
@Desc("Uses Bilinear but with parametric curves alpha 4.")
@DontObfuscate
BILINEAR_PARAMETRIC_4,
@Desc("Uses Bilinear but with parametric curves alpha 1.5.")
@DontObfuscate
BILINEAR_PARAMETRIC_1_5,
@Desc("Bicubic noise creates 4, 4-point splines for a total of 16 checks. Bcubic can go higher than expected and lower than expected right before a large change in slope.")
@DontObfuscate
BICUBIC,
@Desc("Hermite is similar to bicubic, but faster and it can be tuned a little bit")
@DontObfuscate
HERMITE,
@Desc("Essentially bicubic with zero tension")
@DontObfuscate
CATMULL_ROM_SPLINE,
@Desc("Essentially bicubic with max tension")
@DontObfuscate
HERMITE_TENSE,
@Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic")
@DontObfuscate
HERMITE_LOOSE,
@Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic")
@DontObfuscate
HERMITE_LOOSE_HALF_POSITIVE_BIAS,
@Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic")
@DontObfuscate
HERMITE_LOOSE_HALF_NEGATIVE_BIAS,
@Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic")
@DontObfuscate
HERMITE_LOOSE_FULL_POSITIVE_BIAS,
@Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic")
@DontObfuscate
HERMITE_LOOSE_FULL_NEGATIVE_BIAS,

View File

@@ -1,21 +1,28 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("An inventory slot type is used to represent a type of slot for items to fit into in any given inventory.")
public enum InventorySlotType
{
@Desc("Typically the one you want to go with. Storage represnents most slots in inventories.")
@DontObfuscate
STORAGE,
@Desc("Used for the fuel slot in Furnaces, Blast furnaces, smokers etc.")
@DontObfuscate
FUEL,
@Desc("Used for the cook slot in furnaces")
@DontObfuscate
FURNACE,
@Desc("Used for the cook slot in blast furnaces")
@DontObfuscate
BLAST_FURNACE,
@Desc("Used for the cook slot in smokers")
@DontObfuscate
SMOKER,
}

View File

@@ -23,7 +23,6 @@ import lombok.experimental.Accessors;
@Data
public class IrisCarveLayer
{
@Required
@DontObfuscate
@Desc("The 4d slope this carve layer follows")

View File

@@ -1,15 +1,20 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("A loot mode is used to descrive what to do with the existing loot layers before adding this loot. Using ADD will simply add this table to the building list of tables (i.e. add dimension tables, region tables then biome tables). By using clear or replace, you remove the parent tables before and add just your tables.")
public enum LootMode
{
@Desc("Add to the existing parent loot tables")
@DontObfuscate
ADD,
@Desc("Clear all loot tables then add this table")
@DontObfuscate
CLEAR,
@Desc("Replace all loot tables with this table (same as clear)")
@DontObfuscate
REPLACE;
}

View File

@@ -1,30 +1,40 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("Object Place modes are useful for positioning objects just right. The default value is CENTER_HEIGHT.")
public enum ObjectPlaceMode
{
@Desc("The default place mode. This mode picks a center point (where the center of the object will be) and takes the height. That height is used for the whole object.")
@DontObfuscate
CENTER_HEIGHT,
@Desc("Samples a lot of points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.")
@DontObfuscate
MAX_HEIGHT,
@Desc("Samples only 4 points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.\"")
@DontObfuscate
FAST_MAX_HEIGHT,
@Desc("Samples a lot of points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot")
@DontObfuscate
MIN_HEIGHT,
@Desc("Samples only 4 points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot")
@DontObfuscate
FAST_MIN_HEIGHT,
@Desc("Stilting is MAX_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.")
@DontObfuscate
STILT,
@Desc("Just like stilting but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts under ground further)")
@DontObfuscate
FAST_STILT,
@Desc("Samples the height of the terrain at every x,z position of your object and pushes it down to the surface. It's pretty much like a melt function over the terrain.")
@DontObfuscate
PAINT;
}

View File

@@ -1,15 +1,20 @@
package com.volmit.iris.object;
import com.volmit.iris.util.Desc;
import com.volmit.iris.util.DontObfuscate;
@Desc("A structure tile condition is for a specific wall if a tile is allowed to place if a wall exists.")
public enum StructureTileCondition
{
@Desc("This face REQUIRES a wall for this tile to place here")
@DontObfuscate
REQUIRED,
@Desc("This face DOESNT CARE if a wall is here for this tile to place here")
@DontObfuscate
AGNOSTIC,
@Desc("This face CANNOT HAVE a wall for this tile to place here")
@DontObfuscate
NEVER;