mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-08-27 04:37:47 +00:00
Updated Docs, and Cortections
This commit is contained in:
@@ -32,7 +32,7 @@ public class IrisDuration {
|
||||
@Desc("Milliseconds (1000ms = 1 second)")
|
||||
private int milliseconds = 0;
|
||||
|
||||
@Desc("Minecraft Ticks (20 minecraft ticks = 1 second")
|
||||
@Desc("Minecraft Ticks (20 minecraft ticks = 1 second)")
|
||||
private int minecraftTicks = 0;
|
||||
|
||||
@Desc("Seconds (60 seconds = 1 minute)")
|
||||
@@ -50,10 +50,10 @@ public class IrisDuration {
|
||||
@Desc("Minecraft Days (1 minecraft day = 20 real minutes)")
|
||||
private int minecraftDays = 0;
|
||||
|
||||
@Desc("Minecraft Weeks (1 minecraft week = 2 real hours and 18 real minutes)")
|
||||
@Desc("Minecraft Weeks (7 minecraft days = 2 real hours and 20 real minutes)")
|
||||
private int minecraftWeeks = 0;
|
||||
|
||||
@Desc("Minecraft Lunar Cycles (1 minecraft lunar cycle = 2 real hours and 36 real minutes)")
|
||||
@Desc("Minecraft Lunar Cycles (8 minecraft days = 2 real hours and 40 real minutes)")
|
||||
private int minecraftLunarCycles = 0;
|
||||
|
||||
@Desc("REAL (not minecraft) Days")
|
||||
@@ -71,9 +71,8 @@ public class IrisDuration {
|
||||
+ TimeUnit.DAYS.toMillis(getDays())
|
||||
+ (getMinecraftTicks() * 50L)
|
||||
+ (getMinecraftHours() * 50000L)
|
||||
+ (getMinecraftWeeks() * 50000L)
|
||||
+ (getMinecraftDays() * 24000L)
|
||||
+ (getMinecraftWeeks() * 168000L)
|
||||
+ (getMinecraftLunarCycles() * 192000L);
|
||||
+ (getMinecraftDays() * 1_200_000L)
|
||||
+ (getMinecraftWeeks() * 8_400_000L)
|
||||
+ (getMinecraftLunarCycles() * 9_600_000L);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,16 +35,16 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Desc("Represents a dimension")
|
||||
@Desc("Represents a pack modification schema")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class IrisMod extends IrisRegistrant {
|
||||
@MinNumber(2)
|
||||
@Required
|
||||
@Desc("The human readable name of this dimension")
|
||||
private String name = "A Dimension Mod";
|
||||
@Desc("The human-readable name of this pack modification")
|
||||
private String name = "A Pack Modification";
|
||||
|
||||
@Desc("If this mod only works with a specific dimension, define it's load key here. Such as overworld, or flat. Otherwise iris will assume this mod works with anything.")
|
||||
@Desc("The optional dimension load key this modification targets. An empty value does not restrict the target.")
|
||||
private String forDimension = "";
|
||||
|
||||
@MinNumber(-1)
|
||||
@@ -93,7 +93,7 @@ public class IrisMod extends IrisRegistrant {
|
||||
private KList<IrisModObjectPlacementRegionInjector> regionObjectPlacementInjectors = new KList<>();
|
||||
|
||||
@ArrayType(min = 1, type = IrisModRegionReplacer.class)
|
||||
@Desc("Replace biomes with other biomes")
|
||||
@Desc("Replace regions with other regions")
|
||||
private KList<IrisModRegionReplacer> regionReplacers = new KList<>();
|
||||
|
||||
@ArrayType(min = 1, type = IrisObjectReplace.class)
|
||||
|
||||
@@ -18,9 +18,7 @@
|
||||
|
||||
package art.arcane.iris.engine.object;
|
||||
|
||||
import art.arcane.iris.engine.object.annotations.ArrayType;
|
||||
import art.arcane.iris.engine.object.annotations.Desc;
|
||||
import art.arcane.iris.engine.object.annotations.RegistryListResource;
|
||||
import art.arcane.iris.engine.object.annotations.Required;
|
||||
import art.arcane.iris.engine.object.annotations.Snippet;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -37,7 +35,6 @@ import lombok.experimental.Accessors;
|
||||
public class IrisModNoiseStyleReplacer {
|
||||
@Required
|
||||
@Desc("A noise style to find")
|
||||
@ArrayType(type = String.class, min = 1)
|
||||
private NoiseStyle find = NoiseStyle.IRIS;
|
||||
|
||||
@Required
|
||||
@@ -46,6 +43,5 @@ public class IrisModNoiseStyleReplacer {
|
||||
|
||||
@Required
|
||||
@Desc("A noise style to replace it with")
|
||||
@RegistryListResource(IrisBiome.class)
|
||||
private IrisGeneratorStyle replace = new IrisGeneratorStyle();
|
||||
}
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ public class IrisModObjectPlacementBiomeInjector {
|
||||
private String biome = "";
|
||||
|
||||
@Required
|
||||
@Desc("A biome to inject into the region")
|
||||
@Desc("Object placements to inject into the biome")
|
||||
@ArrayType(type = IrisObjectPlacement.class, min = 1)
|
||||
private KList<IrisObjectPlacement> place = new KList<>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -37,12 +37,12 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisModObjectPlacementRegionInjector {
|
||||
@Required
|
||||
@Desc("The biome to find")
|
||||
@Desc("The region to find")
|
||||
@RegistryListResource(IrisRegion.class)
|
||||
private String biome = "";
|
||||
|
||||
@Required
|
||||
@Desc("A biome to inject into the region")
|
||||
@Desc("Object placements to inject into the region")
|
||||
@ArrayType(type = IrisObjectPlacement.class, min = 1)
|
||||
private KList<IrisObjectPlacement> place = new KList<>();
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Desc("A biome replacer")
|
||||
@Desc("An object replacer")
|
||||
@Data
|
||||
public class IrisModObjectReplacer {
|
||||
@Required
|
||||
@@ -44,6 +44,6 @@ public class IrisModObjectReplacer {
|
||||
|
||||
@Required
|
||||
@Desc("An object to replace it with")
|
||||
@RegistryListResource(IrisBiome.class)
|
||||
@RegistryListResource(IrisObject.class)
|
||||
private String replace = "";
|
||||
}
|
||||
|
||||
@@ -31,16 +31,16 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Desc("Translate objects")
|
||||
@Desc("Limits object placement by minimum and maximum world height")
|
||||
@Data
|
||||
public class IrisObjectLimit {
|
||||
@MinNumber(0)
|
||||
@MaxNumber(1024)
|
||||
@MinNumber(-2048)
|
||||
@MaxNumber(2048)
|
||||
@Desc("The minimum height for placement (bottom of object)")
|
||||
private int minimumHeight = -2048;
|
||||
|
||||
@MinNumber(0)
|
||||
@MaxNumber(1024)
|
||||
@MinNumber(-2048)
|
||||
@MaxNumber(2048)
|
||||
@Desc("The maximum height for placement (top of object)")
|
||||
private int maximumHeight = 2048;
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Desc("Translate objects")
|
||||
@Desc("Limits placement to a minimum and maximum terrain slope")
|
||||
@Data
|
||||
public class IrisSlopeClip {
|
||||
@MinNumber(0)
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package art.arcane.iris.engine.object;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class IrisDurationTest {
|
||||
@Test
|
||||
public void convertsRealAndMinecraftUnitsToMilliseconds() {
|
||||
IrisDuration duration = new IrisDuration();
|
||||
duration.setMilliseconds(1);
|
||||
duration.setMinecraftTicks(1);
|
||||
duration.setSeconds(1);
|
||||
duration.setMinutes(1);
|
||||
duration.setMinecraftHours(1);
|
||||
duration.setHours(1);
|
||||
duration.setMinecraftDays(1);
|
||||
duration.setMinecraftWeeks(1);
|
||||
duration.setMinecraftLunarCycles(1);
|
||||
duration.setDays(1);
|
||||
|
||||
assertEquals(109_311_051L, duration.toMilliseconds());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertsMinecraftCalendarUnitsUsingTwentyMinuteDays() {
|
||||
IrisDuration day = new IrisDuration();
|
||||
IrisDuration week = new IrisDuration();
|
||||
IrisDuration lunarCycle = new IrisDuration();
|
||||
day.setMinecraftDays(1);
|
||||
week.setMinecraftWeeks(1);
|
||||
lunarCycle.setMinecraftLunarCycles(1);
|
||||
|
||||
assertEquals(1_200_000L, day.toMilliseconds());
|
||||
assertEquals(8_400_000L, week.toMilliseconds());
|
||||
assertEquals(9_600_000L, lunarCycle.toMilliseconds());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package art.arcane.iris.engine.object;
|
||||
|
||||
import art.arcane.iris.engine.object.annotations.ArrayType;
|
||||
import art.arcane.iris.engine.object.annotations.Desc;
|
||||
import art.arcane.iris.engine.object.annotations.MaxNumber;
|
||||
import art.arcane.iris.engine.object.annotations.MinNumber;
|
||||
import art.arcane.iris.engine.object.annotations.RegistryListResource;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
public class SchemaMetadataCorrectionsTest {
|
||||
@Test
|
||||
public void objectHeightLimitsAdmitTheirDefaults() throws Exception {
|
||||
Field minimum = IrisObjectLimit.class.getDeclaredField("minimumHeight");
|
||||
Field maximum = IrisObjectLimit.class.getDeclaredField("maximumHeight");
|
||||
|
||||
assertEquals(-2048D, minimum.getAnnotation(MinNumber.class).value(), 0D);
|
||||
assertEquals(2048D, minimum.getAnnotation(MaxNumber.class).value(), 0D);
|
||||
assertEquals(-2048D, maximum.getAnnotation(MinNumber.class).value(), 0D);
|
||||
assertEquals(2048D, maximum.getAnnotation(MaxNumber.class).value(), 0D);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void correctedTypesDescribeTheSchemaTheyExpose() {
|
||||
assertEquals("Represents a pack modification schema", IrisMod.class.getAnnotation(Desc.class).value());
|
||||
assertEquals("Limits object placement by minimum and maximum world height",
|
||||
IrisObjectLimit.class.getAnnotation(Desc.class).value());
|
||||
assertEquals("Limits placement to a minimum and maximum terrain slope",
|
||||
IrisSlopeClip.class.getAnnotation(Desc.class).value());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void modReplacerMetadataUsesItsActualTypes() throws Exception {
|
||||
Field noiseFind = IrisModNoiseStyleReplacer.class.getDeclaredField("find");
|
||||
Field objectReplace = IrisModObjectReplacer.class.getDeclaredField("replace");
|
||||
|
||||
assertFalse(noiseFind.isAnnotationPresent(ArrayType.class));
|
||||
assertEquals(IrisObject.class, objectReplace.getAnnotation(RegistryListResource.class).value());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user