mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-05 23:36:12 +00:00
Modes
This commit is contained in:
@@ -171,6 +171,9 @@ public class IrisDimension extends IrisRegistrant {
|
||||
@MaxNumber(360)
|
||||
@Desc("You can rotate the input coordinates by an angle. This can make terrain appear more natural (less sharp corners and lines). This literally rotates the entire dimension by an angle. Hint: Try 12 degrees or something not on a 90 or 45 degree angle.")
|
||||
private double dimensionAngleDeg = 0;
|
||||
@Required
|
||||
@Desc("Define the mode of this dimension (required!)")
|
||||
private IrisDimensionMode mode = new IrisDimensionMode();
|
||||
@MinNumber(0)
|
||||
@MaxNumber(8192)
|
||||
@Desc("Coordinate fracturing applies noise to the input coordinates. This creates the 'iris swirls' and wavy features. The distance pushes these waves further into places they shouldnt be. This is a block value multiplier.")
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Iris is a World Generator for Minecraft Bukkit Servers
|
||||
* Copyright (c) 2021 Arcane Arts (Volmit Software)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.volmit.iris.engine.object;
|
||||
|
||||
import com.volmit.iris.engine.object.annotations.Desc;
|
||||
import com.volmit.iris.engine.object.annotations.Snippet;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Snippet("dimension-mode")
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Desc("Represents a dimensional mode")
|
||||
@Data
|
||||
public class IrisDimensionMode {
|
||||
@Desc("The dimension type")
|
||||
private IrisDimensionModeType type = IrisDimensionModeType.OVERWORLD;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Iris is a World Generator for Minecraft Bukkit Servers
|
||||
* Copyright (c) 2021 Arcane Arts (Volmit Software)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.volmit.iris.engine.object;
|
||||
|
||||
import com.volmit.iris.engine.framework.Engine;
|
||||
import com.volmit.iris.engine.framework.EngineMode;
|
||||
import com.volmit.iris.engine.mode.ModeEnclosure;
|
||||
import com.volmit.iris.engine.mode.ModeIslands;
|
||||
import com.volmit.iris.engine.mode.ModeOverworld;
|
||||
import com.volmit.iris.engine.mode.ModeSuperFlat;
|
||||
import com.volmit.iris.engine.object.annotations.Desc;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@Desc("The type of dimension this is")
|
||||
public enum IrisDimensionModeType {
|
||||
@Desc("Typical dimensions. Has a fluid height, and all features of a biome based world")
|
||||
OVERWORLD(ModeOverworld::new),
|
||||
|
||||
@Desc("Ultra fast, but very limited in features. Only supports terrain & biomes. No decorations, mobs, objects, or anything of the sort!")
|
||||
SUPERFLAT(ModeSuperFlat::new),
|
||||
|
||||
@Desc("Like the nether, a ceiling & floor carved out")
|
||||
ENCLOSURE(ModeEnclosure::new),
|
||||
|
||||
@Desc("Floating islands of terrain")
|
||||
ISLANDS(ModeIslands::new),
|
||||
;
|
||||
private final Function<Engine, EngineMode> factory;
|
||||
|
||||
IrisDimensionModeType(Function<Engine, EngineMode> factory)
|
||||
{
|
||||
this.factory = factory;
|
||||
}
|
||||
|
||||
public EngineMode create(Engine e)
|
||||
{
|
||||
return factory.apply(e);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user