universe cleanup

This commit is contained in:
Sen 2025-07-17 03:11:29 +02:00
parent cf37d48292
commit 9b5eab4f57
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
68 changed files with 553 additions and 369 deletions

View file

@ -1728,7 +1728,7 @@ public class Client implements IThreadListener {
ChunkClient chunk = this.world.getChunk(blockpos);
biome = chunk.getBiome(blockpos);
bline = "Biom: " + biome.display + " (" + biome.name + "), D: " +
TextColor.stripCodes(this.world.dimension.getNameString()) +
TextColor.stripCodes(this.world.dimension.getDisplay()) +
" (" + (this.dimensionName == null ? UniverseRegistry.getName(this.world.dimension) : this.dimensionName) + ")";
lline = "Licht: " + chunk.getLightSub(blockpos, 0) + " (" + chunk.getLight(LightType.SKY, blockpos) + " Himmel, "
+ chunk.getLight(LightType.BLOCK, blockpos) + " Blöcke, " + String.format(
@ -1737,7 +1737,7 @@ public class Client implements IThreadListener {
}
else {
bline = "Biom: <?>, D: " +
TextColor.stripCodes(this.world.dimension.getNameString()) +
TextColor.stripCodes(this.world.dimension.getDisplay()) +
" (" + (this.dimensionName == null ? UniverseRegistry.getName(this.world.dimension) : this.dimensionName) + ")";
lline = "Licht: " + String.format(
"%.1f", this.world.getSunBrightness(1.0f) * 15.0f) + " Welt, A: "

View file

@ -454,7 +454,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
private void setDimButton() {
Dimension dim = DIMENSIONS.get(this.dimension);
this.dimButton.setText((dim.getType() == DimType.PLANET ? "Heimplanet" : "Heimdimension") + ": " + dim.getNameString());
this.dimButton.setText((dim.getType() == DimType.PLANET ? "Heimplanet" : "Heimdimension") + ": " + dim.getDisplay());
this.descLines.setText(Util.buildLines(dim.getBaseNames()));
}

View file

@ -13,6 +13,7 @@ import client.gui.element.PressType;
import client.renderer.Drawing;
import common.color.TextColor;
import common.entity.npc.PlayerCharacter;
import common.init.UniverseRegistry;
import common.packet.CPacketAction;
import common.packet.CPacketAction.Action;
import common.util.ExtMath;
@ -76,7 +77,7 @@ public class GuiCharacters extends GuiList<GuiCharacters.CharacterEntry> impleme
this.elements.clear();
int selected = this.gm.selectedCharacter;
for(PlayerCharacter character : this.gm.characterList) {
this.elements.add(new CharacterEntry(selected == this.elements.size() ? new PlayerCharacter(character.name(), character.info(), character.align(), this.gm.player.worldObj.dimension.getNameString(), this.gm.player.getPosition(), character.type(), this.gm.player.experienceLevel) : character, selected == this.elements.size()));
this.elements.add(new CharacterEntry(selected == this.elements.size() ? new PlayerCharacter(character.name(), character.info(), character.align(), this.gm.player.worldObj.dimension.getDisplay(), this.gm.player.getPosition(), character.type(), this.gm.player.experienceLevel, UniverseRegistry.getName(this.gm.player.getOrigin().getDimension())) : character, selected == this.elements.size()));
}
if(!this.gm.charEditor)
this.elements.add(new CharacterEntry(null, false));

View file

@ -75,7 +75,7 @@ public class GuiCreateDimension extends Gui {
}
dtag.merge(ptag);
dim.fromTags(dtag);
dim.setCustomName(display);
dim.setDisplay(display);
PRESETS.add(dim);
return dim;
}

View file

@ -21,7 +21,7 @@ public class GuiGameOver extends Gui {
public void init(int width, int height) {
this.timer = 0;
this.add(new Label(0, 0, 400, 0, TextColor.DRED + "Du bist gestorben!"));
this.add(new MultiLabel(0, 32, 400, 42, String.format(TextColor.GREEN + "Letzte Position" + TextColor.GRAY + ":\n" + TextColor.YELLOW + "%d, %d, %d\n" + TextColor.YELLOW + "%s", ExtMath.floord(this.gm.player.posX), ExtMath.floord(this.gm.player.posY), ExtMath.floord(this.gm.player.posZ), this.gm.player.worldObj.dimension.getNameString())));
this.add(new MultiLabel(0, 32, 400, 42, String.format(TextColor.GREEN + "Letzte Position" + TextColor.GRAY + ":\n" + TextColor.YELLOW + "%d, %d, %d\n" + TextColor.YELLOW + "%s", ExtMath.floord(this.gm.player.posX), ExtMath.floord(this.gm.player.posY), ExtMath.floord(this.gm.player.posZ), this.gm.player.worldObj.dimension.getDisplay())));
this.button = this.add(new ActButton(100, 100, 200, 0, new ButtonCallback() {
public void use(ActButton elem, PressType action) {
GuiGameOver.this.gm.player.respawnPlayer();

View file

@ -18,7 +18,7 @@ public class GuiSign extends Gui implements FieldCallback {
public void init(int width, int height) {
this.add(new Label(0, -140, 300, 0, "Bearbeite Schild"));
this.add(new Label(0, -80, 300, 0, String.format("%d, %d, %d", this.position.getX(), this.position.getY(), this.position.getZ())));
this.add(new Label(0, -50, 300, 0, this.gm.world == null ? "<?>" : this.gm.world.dimension.getNameString()));
this.add(new Label(0, -50, 300, 0, this.gm.world == null ? "<?>" : this.gm.world.dimension.getDisplay()));
for(int z = 0; z < this.lines.length; z++) {
this.lines[z] = this.add(new Field(0, 40 * z, 300, 0, 50, this, this.tempLines[z] == null ? "" : this.tempLines[z]));
}

View file

@ -32,6 +32,7 @@ import common.block.tech.BlockDispenser;
import common.block.tech.BlockFurnace;
import common.block.tech.BlockWorkbench;
import common.dimension.Dimension;
import common.dimension.Space;
import common.effect.StatusEffect;
import common.entity.DataWatcher;
import common.entity.Entity;
@ -46,6 +47,7 @@ import common.init.Blocks;
import common.init.EntityRegistry;
import common.init.ItemRegistry;
import common.init.SoundEvent;
import common.init.UniverseRegistry;
import common.inventory.Container;
import common.inventory.InventoryBasic;
import common.inventory.InventoryPlayer;
@ -128,6 +130,7 @@ import common.tileentity.Device;
import common.tileentity.TileEntityDisplay;
import common.tileentity.TileEntitySign;
import common.util.Pair;
import common.util.WorldPos;
import common.village.MerchantRecipeList;
import common.world.Explosion;
import common.world.Weather;
@ -1628,6 +1631,10 @@ public class ClientPlayer implements IClientPlayer
else if(this.gm.open instanceof GuiChar guichar) {
guichar.setCharsAvailable();
}
if(!this.gm.charEditor && this.gm.player != null && this.gm.selectedCharacter >= 0 && this.gm.selectedCharacter < this.gm.characterList.size()) {
Dimension dim = UniverseRegistry.getDimension(this.gm.characterList.get(this.gm.selectedCharacter).origin());
this.gm.player.setOrigin(new WorldPos(0, 0, 0, dim == null ? Space.INSTANCE : dim));
}
}
public void handleKeepAlive(SPacketKeepAlive packetIn)
@ -1885,7 +1892,7 @@ public class ClientPlayer implements IClientPlayer
public void handleDimName(SPacketDimensionName packet) {
NetHandler.checkThread(packet, this, this.gm, this.world);
if(this.world.dimension.isCustom()) {
this.world.dimension.setCustomName(packet.getCustomName());
this.world.dimension.setDisplay(packet.getCustomName());
this.world.dimension.setBaseNames(packet.getFullName());
}
}

View file

@ -4,11 +4,14 @@ import client.Client;
import client.network.ClientPlayer;
import client.world.WorldClient;
import common.block.Block;
import common.dimension.Dimension;
import common.dimension.Space;
import common.entity.Entity;
import common.entity.npc.EntityNPC;
import common.init.BlockRegistry;
import common.init.Blocks;
import common.init.EntityRegistry;
import common.init.UniverseRegistry;
import common.item.ItemControl;
import common.item.ItemStack;
import common.item.block.ItemBlock;
@ -20,6 +23,7 @@ import common.sound.PositionedSound;
import common.util.BlockPos;
import common.util.Facing;
import common.util.Vec3;
import common.util.WorldPos;
import common.world.State;
import common.world.World;
@ -284,6 +288,10 @@ public class PlayerController {
public EntityNPC createPlayerEntity(WorldClient world, int type) {
EntityNPC player = (EntityNPC)EntityRegistry.createEntityByID(type, world);
player.setClientPlayer(this.handler);
if(!this.gm.charEditor && this.gm.selectedCharacter >= 0 && this.gm.selectedCharacter < this.gm.characterList.size()) {
Dimension dim = UniverseRegistry.getDimension(this.gm.characterList.get(this.gm.selectedCharacter).origin());
player.setOrigin(new WorldPos(0, 0, 0, dim == null ? Space.INSTANCE : dim));
}
return player;
}

View file

@ -71,7 +71,7 @@ public class BlockBed extends Block implements Rotatable {
&& Math.abs(player.posY - (double)pos.getY()) <= 2.0D && Math.abs(player.posZ - (double)pos.getZ()) <= 3.0D) {
player.setSpawnPoint(new WorldPos(pos, player.worldObj));
player.connection.addHotbar(TextColor.DGREEN + "Dein Einstiegspunkt wurde auf %s bei [%s, %s, %s] gesetzt",
player.worldObj.dimension.getNameString(), player.getSpawnPoint().getX(),
player.worldObj.dimension.getDisplay(), player.getSpawnPoint().getX(),
player.getSpawnPoint().getY(), player.getSpawnPoint().getZ());
}
// else if(!Config.bedSpawn) {

View file

@ -8,7 +8,6 @@ import common.entity.Entity;
import common.init.Blocks;
import common.item.CheatTab;
import common.item.Item;
import common.item.block.ItemBlock;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;

View file

@ -5,14 +5,10 @@ import common.block.Rotatable;
import common.block.Material;
import common.entity.Entity;
import common.entity.types.EntityLiving;
import common.init.Items;
import common.item.CheatTab;
import common.item.Item;
import common.model.Model;
import common.model.ModelProvider;
import common.model.ModelRotation;
import common.properties.Property;
import common.rng.Random;
import common.util.BlockPos;
import common.util.Facing;
import common.world.State;

View file

@ -5,7 +5,6 @@ import common.block.Material;
import common.entity.Entity;
import common.entity.types.EntityLiving;
import common.init.Blocks;
import common.init.Items;
import common.item.Item;
import common.model.Model;
import common.model.ModelProvider;

View file

@ -3,8 +3,6 @@ package common.block.foliage;
import common.block.Block;
import common.block.Material;
import common.init.Blocks;
import common.init.Items;
import common.item.CheatTab;
import common.item.Item;
import common.item.StackSize;
import common.model.BlockLayer;

View file

@ -3,9 +3,6 @@ package common.block.tech;
import java.util.Arrays;
import common.entity.npc.EntityNPC;
import common.init.BlockRegistry;
import common.item.Item;
import common.item.block.ItemBlock;
import common.tileentity.TileEntity;
import common.tileentity.TileEntityDisplay;
import common.util.BlockPos;

View file

@ -16,6 +16,10 @@ public final class Area extends Dimension {
this.setSkyColor(sky).setFogColor(fog);
}
public Area(int color, int width, float temperature, int brightness) {
this(color, color, width, temperature, brightness);
}
public final DimType getType() {
return DimType.AREA;
}

View file

@ -5,17 +5,16 @@ import java.util.Map;
import common.collect.Maps;
public enum DimType {
STAR("star", "Stern %s", true, false, false, false, false, true),
PLANET("planet", "Planet %s", true, true, true, true, true, true),
MOON("moon", "Mond %s", true, false, false, true, false, true),
SPACE("space", "%s", false, false, false, false, false, true),
SEMI("semi", "%s", false, false, true, false, true, true),
AREA("area", "%s", false, false, false, false, false, false);
STAR("star", true, false, false, false, false, true),
PLANET("planet", true, true, true, true, true, true),
MOON("moon", true, false, false, true, false, true),
SPACE("space", false, false, false, false, false, true),
SEMI("semi", false, false, true, false, true, true),
AREA("area", false, false, false, false, false, false);
private static final Map<String, DimType> LOOKUP = Maps.newHashMap();
private final String name;
public final String format;
public final boolean celestial;
public final boolean days;
public final boolean weather;
@ -23,9 +22,8 @@ public enum DimType {
public final boolean clouds;
public final boolean sky;
private DimType(String name, String format, boolean time, boolean days, boolean weather, boolean celestials, boolean clouds, boolean sky) {
private DimType(String name, boolean time, boolean days, boolean weather, boolean celestials, boolean clouds, boolean sky) {
this.name = name;
this.format = format;
this.celestial = time;
this.days = days;
this.weather = weather;

View file

@ -171,7 +171,6 @@ public abstract class Dimension extends Nameable {
private float orbitOffset = 0.0f;
private long orbitalPeriod = 1L;
private long rotationPeriod = 1L;
private int timeQualifier = 9;
private int brightness = 0;
private int size = World.MAX_SIZE;
@ -590,11 +589,6 @@ public abstract class Dimension extends Nameable {
}
public final Dimension setTimeQualifier(int value) {
this.timeQualifier = value;
return this;
}
public final Dimension setDefaultWeather(Weather value) {
this.defaultWeather = this.weather = value;
return this;
@ -703,11 +697,6 @@ public abstract class Dimension extends Nameable {
}
public final int getTimeQualifier() {
return this.timeQualifier;
}
// public final String getCustomName() {
// return this.customName;
// }
@ -886,14 +875,14 @@ public abstract class Dimension extends Nameable {
switch(this.getType()) {
case MOON:
dim = UniverseRegistry.getPlanet((Moon)dim);
planet = dim.getNameString();
planet = dim.getDisplay();
case PLANET:
dim = UniverseRegistry.getStar((Planet)dim);
star = dim.getNameString();
star = dim.getDisplay();
case STAR:
Sector sector = UniverseRegistry.getSector((Star)dim);
String sect = sector.getNameString();
String galaxy = UniverseRegistry.getGalaxy(sector).getNameString();
String sect = sector.getDisplay();
String galaxy = UniverseRegistry.getGalaxy(sector).getDisplay();
if(planet != null)
return new String[] {planet, star, sect, galaxy};
else if(star != null)
@ -901,7 +890,7 @@ public abstract class Dimension extends Nameable {
else
return new String[] {sect, galaxy};
case AREA:
return new String[] {UniverseRegistry.getDomain((Area)dim).getNameString()};
return new String[] {UniverseRegistry.getDomain((Area)dim).getDisplay()};
default:
return new String[0];
}
@ -1151,7 +1140,6 @@ public abstract class Dimension extends Nameable {
}
this.populated = !tag.hasBool("NoPopulation") || !tag.getBool("NoPopulation");
this.denseFog = tag.getBool("DenseFog");
this.timeQualifier = tag.getInt("ImperialTime");
this.brightness = tag.getInt("Brightness");
this.skyColor = tag.getInt("SkyColor");
this.fogColor = tag.getInt("FogColor");
@ -1331,7 +1319,6 @@ public abstract class Dimension extends Nameable {
if(!this.populated)
tag.setBool("NoPopulation", true);
tag.setBool("DenseFog", this.denseFog);
tag.setInt("ImperialTime", this.timeQualifier);
tag.setInt("Brightness", this.brightness);
tag.setInt("SkyColor", this.skyColor);
tag.setInt("FogColor", this.fogColor);
@ -1379,10 +1366,6 @@ public abstract class Dimension extends Nameable {
}
}
protected String getNameIdentifier() {
return this.getType().format;
}
public int getBiomeSize() {
return this.biomeSize;
}

View file

@ -11,8 +11,4 @@ public final class Domain extends Nameable implements Comparable<Domain> {
public int compareTo(Domain other) {
return other == null ? -1 : this.id.compareTo(other.id);
}
protected String getNameIdentifier() {
return "%s";
}
}

View file

@ -11,8 +11,4 @@ public final class Galaxy extends Nameable implements Comparable<Galaxy> {
public int compareTo(Galaxy other) {
return other == null ? -1 : this.id.compareTo(other.id);
}
protected String getNameIdentifier() {
return "Galaxie %s";
}
}

View file

@ -1,5 +1,8 @@
package common.dimension;
import common.biome.Biome;
import common.block.Block;
import common.init.Blocks;
import common.init.UniverseRegistry;
public final class Moon extends Dimension {
@ -7,12 +10,25 @@ public final class Moon extends Dimension {
super(true);
}
public Moon(int sky, int fog, int radius, long orbit, long rotation, float gravity, float temperature, int brightness) {
public Moon(int sky, int fog, int radius, long orbit, long rotation, float gravity, float temperature, int brightness, Block surface, Block liquid) {
super(false);
this.setPhysics(Planet.radiusToSize(Math.min(radius, 26000000)), orbit, rotation, 0.0f, gravity, temperature, brightness);
this.setTimeQualifier(7);
this.setStarBrightness(0.75f).setDeepStarBrightness(0.75f);
this.setSkyColor(sky).setFogColor(fog);
this.setPerlinGen(surface.getState(), liquid.getState(), 63);
this.setBiome(Biome.MOON);
}
public Moon(int color, int radius, long orbit, long rotation, float gravity, float temperature, Block surface, Block liquid) {
this(color, color, radius, orbit, rotation, gravity, temperature, 8, surface, liquid);
}
public Moon(int radius, long orbit, long rotation, float gravity, float temperature) {
this(0x333333, radius, orbit, rotation, gravity, temperature, Blocks.moon_rock, Blocks.air);
}
public Moon(int radius, long orbitRotation, float gravity, float temperature) {
this(radius, orbitRotation, orbitRotation, gravity, temperature);
}
public final DimType getType() {

View file

@ -9,23 +9,15 @@ public abstract class Nameable {
this.custom = custom;
}
public final String getCustomName() {
return this.display;
}
public final void setCustomName(String name) {
this.display = name;
}
public final boolean isCustom() {
return this.custom;
}
protected abstract String getNameIdentifier();
public final void setDisplay(String name) {
this.display = name;
}
public final String getNameString() {
return this.display.startsWith("'") && this.display.endsWith("'") && this.display.length() > 2
? this.display.substring(1, this.display.length() - 1) :
String.format(this.getNameIdentifier(), this.display);
public final String getDisplay() {
return this.display;
}
}

View file

@ -23,15 +23,22 @@ public final class Planet extends Dimension {
this(sky, fog, clouds, radius, orbit, rotation, offset, gravity, temperature, 0);
}
public Planet(int radius, long orbit, long rotation, float offset, float gravity, float temperature) {
this(0xffffffff, 0xc0d8ff, 0xffffff, radius, orbit, rotation, offset, gravity, temperature, 0);
}
public Planet(int sky, int fog, int clouds, int radius, long orbit, long rotation, float gravity, float temperature) {
this(sky, fog, clouds, radius, orbit, rotation, 0.0f, gravity, temperature, 0);
}
public Planet(int radius, long orbit, long rotation, float gravity, float temperature) {
this(radius, orbit, rotation, 0.0f, gravity, temperature);
}
public Planet(int sky, int fog, int clouds, int radius, long orbit, long rotation, float offset, float gravity,
float temperature, int brightness) {
super(false);
this.setPhysics(radiusToSize(Math.min(radius, 36750000)), orbit, rotation, offset, gravity, temperature, brightness);
this.setTimeQualifier(7);
this.setStarBrightness(0.5f).setDeepStarBrightness(0.0f);
this.setSkyColor(sky).setFogColor(fog).setCloudColor(clouds);
}

View file

@ -11,8 +11,4 @@ public final class Sector extends Nameable implements Comparable<Sector> {
public int compareTo(Sector other) {
return other == null ? -1 : this.id.compareTo(other.id);
}
protected String getNameIdentifier() {
return "Sektor %s";
}
}

View file

@ -12,6 +12,10 @@ public final class Semi extends Dimension {
this.setSkyColor(sky).setFogColor(fog).setCloudColor(clouds);
}
public Semi(int color, int clouds, int width, float temperature, int brightness) {
this(color, color, clouds, width, temperature, brightness);
}
public final DimType getType() {
return DimType.SEMI;
}

View file

@ -8,7 +8,7 @@ public final class Space extends Dimension {
private Space() {
super(false);
this.setPhysics(World.MAX_SIZE, 1L, 1L, 0.0f, 0.0f, 2.7f, 15).setTimeQualifier(8);
this.setPhysics(World.MAX_SIZE, 1L, 1L, 0.0f, 0.0f, 2.7f, 15);
this.setBiome(Biome.SPACE).setStarBrightness(1.0f).setDeepStarBrightness(1.0f);
}

View file

@ -1,18 +1,22 @@
package common.dimension;
import common.world.State;
import common.block.liquid.BlockStaticLiquid;
import common.init.Blocks;
public final class Star extends Dimension {
Star() {
super(true);
}
public Star(int color, int radius, float gravity, float temp, State surface, int height) {
public Star(int color, int radius, float gravity, float temp, BlockStaticLiquid filler) {
super(false);
this.setPhysics(Planet.radiusToSize(Math.min(radius, 945000000) / 25), 1L, 1L, 0.0f, gravity, temp, 15);
this.setTimeQualifier(7);
this.setStarBrightness(0.75f).setDeepStarBrightness(0.75f);
this.setSkyColor(color).setFogColor(color).setFlatGen(surface, height);
this.setSkyColor(color).setFogColor(color).setFlatGen(filler.getState(), 128);
}
public Star(int radius, float gravity, float temp) {
this(0xff7f00, radius, gravity, temp, Blocks.plasma);
}
public final DimType getType() {

View file

@ -2,5 +2,5 @@ package common.entity.npc;
import common.util.BlockPos;
public record PlayerCharacter(String name, String info, Alignment align, String dim, BlockPos pos, String type, int level) {
public record PlayerCharacter(String name, String info, Alignment align, String dim, BlockPos pos, String type, int level, String origin) {
}

View file

@ -292,6 +292,7 @@ public abstract class BlockRegistry {
registerFluid("water", "Wasser", true, LiquidType.WATER, false, 0, 5, 0.0f, TextureAnimation.WATER, TextureAnimation.WATERFLOW);
registerFluid("lava", "Lava", false, LiquidType.LAVA, true, 15, -30, 0.0f, 2, 3);
registerFluid("magma", "Magma", false, LiquidType.HOT, true, 15, 40, 0.0f, TextureAnimation.LAVA, TextureAnimation.LAVAFLOW);
registerFluid("plasma", "Plasma", false, LiquidType.HOT, false, 15, 15, 0.0f, 2, 2);
registerFluid("mercury", "Quecksilber", false, LiquidType.COLD, true, 0, 40, 0.0f, 8, 4);
registerFluid("hydrogen", "Wasserstoff", false, LiquidType.COLD, true, 0, 50, 0.0f, 8, 4);
registerFluid("acid", "Säure", false, LiquidType.HOT, false, 0, 5, 0.0f, 1, 1);

View file

@ -593,6 +593,8 @@ public abstract class Blocks {
public static final BlockToggleableLight lamp = get("lamp");
public static final BlockToggleableLight lit_lamp = get("lit_lamp");
public static final BlockWire wire = get("wire");
public static final BlockStaticLiquid plasma = get("plasma");
public static final BlockDynamicLiquid flowing_plasma = get("flowing_plasma");
private static <T extends Block> T get(String id) {
T block = (T)BlockRegistry.byNameExact(id);

View file

@ -1007,6 +1007,8 @@ public abstract class Items {
public static final ItemBlock torch = get("torch");
public static final ItemBlock soul_torch = get("soul_torch");
public static final ItemBlock tian_torch = get("tian_torch");
public static final ItemBucket plasma_bucket = get("plasma_bucket");
public static final ItemBucket recursive_plasma_bucket = get("recursive_plasma_bucket");
private static <T extends Item> T get(String id) {
T item = (T)ItemRegistry.byName(id);

View file

@ -157,49 +157,49 @@ public abstract class UniverseRegistry {
}
public static Galaxy registerCustomGalaxy(String name, String display) {
return registerGalaxy(name, display, true);
return registerGalaxyInt(name, display, true);
}
public static Sector registerCustomSector(String name, String display, String galaxy) {
return registerSector(name, display, galaxy, true);
return registerSectorInt(name, display, galaxy, true);
}
public static Domain registerCustomDomain(String name, String display) {
return registerDomain(name, display, true);
return registerDomainInt(name, display, true);
}
public static Star registerCustomStar(String name, String display, Star dim, String sector) {
if(!dim.isCustom())
dim = (Star)dim.makeCustomCopy();
registerStar(name, display, dim, sector);
registerStarInt(name, display, dim, sector);
return dim;
}
public static Planet registerCustomPlanet(String name, String display, Planet dim, String star) {
if(!dim.isCustom())
dim = (Planet)dim.makeCustomCopy();
registerPlanet(name, display, dim, star);
registerPlanetInt(name, display, dim, star);
return dim;
}
public static Moon registerCustomMoon(String name, String display, Moon dim, String planet) {
if(!dim.isCustom())
dim = (Moon)dim.makeCustomCopy();
registerMoon(name, display, dim, planet);
registerMoonInt(name, display, dim, planet);
return dim;
}
public static Area registerCustomArea(String name, String display, Area dim, String domain) {
if(!dim.isCustom())
dim = (Area)dim.makeCustomCopy();
registerArea(name, display, dim, domain);
registerAreaInt(name, display, dim, domain);
return dim;
}
public static Semi registerCustomSemi(String name, String display, Semi dim) {
if(!dim.isCustom())
dim = (Semi)dim.makeCustomCopy();
registerSemi(name, display, dim);
registerSemiInt(name, display, dim);
return dim;
}
@ -208,26 +208,22 @@ public abstract class UniverseRegistry {
throw new IllegalArgumentException("Objekt " + name + " ist bereits registriert");
}
private static Galaxy registerGalaxy(String name, String display, boolean custom) {
private static Galaxy registerGalaxyInt(String name, String display, boolean custom) {
checkRegistered(name);
Galaxy galaxy = new Galaxy(name, custom);
galaxy.setCustomName(display);
galaxy.setDisplay(display);
GALAXIES.put(name, galaxy);
SECTORS_MAP.put(galaxy, Lists.newArrayList());
return galaxy;
}
private static void registerGalaxy(String name, String display) {
registerGalaxy(name, display, false);
}
private static Sector registerSector(String name, String display, String galaxy, boolean custom) {
private static Sector registerSectorInt(String name, String display, String galaxy, boolean custom) {
checkRegistered(name);
Galaxy base = GALAXIES.get(galaxy);
if(base == null)
throw new IllegalArgumentException("Galaxie " + galaxy + " existiert nicht");
Sector sector = new Sector(name, custom);
sector.setCustomName(display);
sector.setDisplay(display);
SECTORS.put(name, sector);
SECTOR_MAP.put(sector, base);
STARS_MAP.put(sector, Lists.newArrayList());
@ -235,26 +231,18 @@ public abstract class UniverseRegistry {
return sector;
}
private static void registerSector(String name, String display, String galaxy) {
registerSector(name, display, galaxy, false);
}
private static Domain registerDomain(String name, String display, boolean custom) {
private static Domain registerDomainInt(String name, String display, boolean custom) {
checkRegistered(name);
Domain domain = new Domain(name, custom);
domain.setCustomName(display);
domain.setDisplay(display);
DOMAINS.put(name, domain);
AREAS_MAP.put(domain, Lists.newArrayList());
return domain;
}
private static void registerDomain(String name, String display) {
registerDomain(name, display, false);
}
private static void registerDimension(String name, String display, Dimension dim) {
checkRegistered(name);
dim.setCustomName(display);
dim.setDisplay(display);
NAME_MAP.put(name, dim);
NAMES.put(dim, name);
NAME_LIST.add(name);
@ -263,7 +251,7 @@ public abstract class UniverseRegistry {
DIMENSIONS.add(dim);
}
private static void registerStar(String name, String display, Dimension dim, String sector) {
private static void registerStarInt(String name, String display, Dimension dim, String sector) {
Sector base = SECTORS.get(sector);
if(base == null)
throw new IllegalArgumentException("Sektor " + sector + " existiert nicht");
@ -273,7 +261,7 @@ public abstract class UniverseRegistry {
STARS_MAP.get(base).add((Star)dim);
}
private static void registerPlanet(String name, String display, Dimension dim, String star) {
private static void registerPlanetInt(String name, String display, Dimension dim, String star) {
Dimension base = NAME_MAP.get(star);
if(base == null || base.getType() != DimType.STAR)
throw new IllegalArgumentException("Stern " + star + " existiert nicht");
@ -283,7 +271,7 @@ public abstract class UniverseRegistry {
PLANETS_MAP.get((Star)base).add((Planet)dim);
}
private static void registerMoon(String name, String display, Dimension dim, String planet) {
private static void registerMoonInt(String name, String display, Dimension dim, String planet) {
Dimension base = NAME_MAP.get(planet);
if(base == null || base.getType() != DimType.PLANET)
throw new IllegalArgumentException("Planet " + planet + " existiert nicht");
@ -292,7 +280,7 @@ public abstract class UniverseRegistry {
MOONS_MAP.get((Planet)base).add((Moon)dim);
}
private static void registerArea(String name, String display, Dimension dim, String domain) {
private static void registerAreaInt(String name, String display, Dimension dim, String domain) {
Domain base = DOMAINS.get(domain);
if(base == null)
throw new IllegalArgumentException("Bereich " + domain + " existiert nicht");
@ -301,18 +289,128 @@ public abstract class UniverseRegistry {
AREAS_MAP.get(base).add((Area)dim);
}
private static void registerSemi(String name, String display, Dimension dim) {
private static void registerSemiInt(String name, String display, Dimension dim) {
registerDimension(name, display, dim);
SEMI_SET.add((Semi)dim);
}
private static String lastGalaxy;
private static String lastSector;
private static String lastDomain;
private static String lastStar;
private static String lastPlanet;
private static String fromDisplay(String display) {
return display.toLowerCase().replace("'", "").replace(' ', '_');
}
private static void registerGalaxy(String name, String display, Runnable sub) {
registerGalaxyInt(name, display, false);
lastGalaxy = name;
sub.run();
lastGalaxy = null;
}
private static void registerSector(String name, String display, Runnable sub) {
registerSectorInt(name, display, lastGalaxy, false);
lastSector = name;
sub.run();
lastSector = null;
}
private static void registerDomain(String name, String display, Runnable sub) {
registerDomainInt(name, display, false);
lastDomain = name;
sub.run();
lastDomain = null;
}
private static void registerStar(String name, String display, Dimension dim, Runnable sub) {
registerStarInt(name, display, dim, lastSector);
lastStar = name;
sub.run();
lastStar = null;
}
private static void registerPlanet(String name, String display, Dimension dim) {
registerPlanetInt(name, display, dim, lastStar);
}
private static void registerPlanet(String name, String display, Dimension dim, Runnable sub) {
registerPlanet(name, display, dim);
lastPlanet = name;
sub.run();
lastPlanet = null;
}
private static void registerMoon(String name, String display, Dimension dim) {
registerMoonInt(name, display, dim, lastPlanet);
}
private static void registerArea(String name, String display, Dimension dim) {
registerAreaInt(name, display, dim, lastDomain);
}
private static void registerSemi(String name, String display, Dimension dim) {
registerSemiInt(name, display, dim);
}
private static void registerGalaxy(String display, Runnable sub) {
registerGalaxy(fromDisplay(display), "Galaxie " + display, sub);
}
private static void registerSector(String display, Runnable sub) {
registerSector(fromDisplay(display), "Sektor " + display, sub);
}
private static void registerDomain(String display, Runnable sub) {
registerDomain(fromDisplay(display), display, sub);
}
private static void registerStar(String display, Dimension dim, Runnable sub) {
registerStar(fromDisplay(display), "Stern " + display, dim, sub);
}
private static void registerPlanet(String display, Dimension dim) {
registerPlanet(fromDisplay(display), "Planet " + display, dim);
}
private static void registerPlanet(String display, Dimension dim, Runnable sub) {
registerPlanet(fromDisplay(display), "Planet " + display, dim, sub);
}
private static void registerMoon(String display, Dimension dim) {
registerMoon(fromDisplay(display), "Mond " + display, dim);
}
private static void registerArea(String display, Dimension dim) {
registerArea(fromDisplay(display), display, dim);
}
private static void registerSemi(String display, Dimension dim) {
registerSemi(fromDisplay(display), display, dim);
}
private static void registerStar(String display, int radius, float gravity, float temp, Runnable sub) {
registerStar(display, new Star(radius, gravity, temp), sub);
}
private static void registerMoon(String display, int radius, long orbit, long rotation, float gravity, float temperature) {
registerMoon(display, new Moon(radius, orbit, rotation, gravity, temperature));
}
private static void registerMoon(String display, int radius, long orbitRotation, float gravity, float temperature) {
registerMoon(display, new Moon(radius, orbitRotation, gravity, temperature));
}
public static void register() {
registerDimension("space", "Der Weltraum", Space.INSTANCE);
registerGalaxy("milkyway", "Milchstraße");
registerSector("solar", "Solar", "milkyway");
registerStar("sol", "Sol", new Star(0xff7f00, 695508000, 274.0f, 5778.0f, Blocks.lava.getState(), 128).setTimeQualifier(1), "solar");
registerPlanet("terra", "Terra", new Planet(0xffffffff, 0xc0d8ff, 0xffffff, 6378136, World.EARTH_YEAR, 24000L, 28.0f, 9.81f,
259.15f).setTimeQualifier(0)
registerGalaxy("milkyway", "Galaxie Milchstraße", () -> {
registerSector("Solar", () -> {
registerStar("Sol", 695508000, 274.0f, 5778.0f, () -> {
registerPlanet("Terra", new Planet(6378136, 8766144L, 24000L, 28.0f, 9.81f, 259.15f)
.setPerlinGen(Blocks.stone.getState(), Blocks.water.getState(), 63)
.setBiomeReplacer(Blocks.gravel.getState())
.setBiomeGen(Biome.FOREST, false, 4, 4, 6, 50, 50, Biome.MUSHROOMPLAINS).enableMobs().enableSnow()
@ -336,51 +434,69 @@ public abstract class UniverseRegistry {
.addOre(Blocks.diamond_ore.getState(), 1, 0, 8, 0, 16, false)
.addOre(Blocks.ruby_ore.getState(), 1, 0, 4, 12, 8, true)
.addOre(Blocks.cinnabar_ore.getState(), 1, 0, 11, 0, 24, false)
.enableVillages().enableMineshafts().enableScattered().enableStrongholds(), "sol");
registerMoon("luna", "Luna", new Moon(0x333333, 0x333333, 1737100, 655728L, 655728L, 1.62f, 210.0f, 8)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63).setBiome(Biome.MOON)
.setTimeQualifier(1), "terra");
.enableVillages().enableMineshafts().enableScattered().enableStrongholds(), () -> {
registerMoon("Luna", 1737100, 655728L, 1.62f, 210.0f);
});
registerPlanet("mercury", "Planet Merkur", new Planet(0x666666, 0x535353, 0x858585, 2440530, 2111297L, 1407509L, 3.7f, 440.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63));
registerPlanet("Venus", new Planet(0xc0c0c0, 0xa0a0a0, 0xe0e0e0, 6051800, 5392908L, 5832449L, 8.87f, 737.0f)
.setPerlinGen(Blocks.sand.getState(), Blocks.air.getState(), 63));
registerPlanet("Mars", new Planet(0xd6905b, 0xbd723a, 0xbd9273, 3396190, 16487781L, 24623L, 3.71f, 208.0f)
.setPerlinGen(Blocks.red_sand.getState(), Blocks.air.getState(), 63), () -> {
registerMoon("Phobos", 11080, 7654L, 0.0057f, 233.0f);
registerMoon("Deimos", 6270, 30312L, 0.003f, 233.0f);
});
registerPlanet("Jupiter", new Planet(0xffd5ba, 0xb89f90, 0xc7b5a9, 71492000, 103989391L, 9925L, 24.79f, 163.0f).enableDenseFog()
.setFlatGen(Blocks.hydrogen.getState(), 256).setCloudHeight(576.0f), () -> {
registerPlanet("mercury", "Merkur", new Planet(0x666666, 0x535353, 0x858585, 2440530, 2111297L, 1407509L, 3.7f, 440.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
registerPlanet("venus", "Venus", new Planet(0xc0c0c0, 0xa0a0a0, 0xe0e0e0, 6051800, 5392908L, 5832449L, 8.87f, 737.0f)
.setPerlinGen(Blocks.sand.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
registerPlanet("mars", "Mars", new Planet(0xd6905b, 0xbd723a, 0xbd9273, 3396190, 16487781L, 24623L, 3.71f, 208.0f)
.setPerlinGen(Blocks.red_sand.getState(),
Blocks.air.getState(), 63).setTimeQualifier(1), "sol");
registerPlanet("jupiter", "Jupiter", new Planet(0xffd5ba, 0xb89f90, 0xc7b5a9, 71492000, 103989391L, 9925L, 24.79f, 163.0f).enableDenseFog()
.setFlatGen(Blocks.hydrogen.getState(), 256).setTimeQualifier(1).setCloudHeight(576.0f), "sol");
registerPlanet("saturn", "Saturn", new Planet(0xf1d1a1, 0xd3b385, 0xeed7b5, 60268000, 258141008L, 10656L, 10.44f, 133.0f).enableDenseFog()
.setFlatGen(Blocks.hydrogen.getState(), 256).setTimeQualifier(1).setCloudHeight(576.0f), "sol");
registerPlanet("uranus", "Uranus", new Planet(0xcee6ff, 0xadd2f9, 0x8eb0d3, 25559000, 736503770L, 17240L, 8.87f, 78.0f)
.setPerlinGen(Blocks.packed_ice.getState(), Blocks.water.getState(), 70)
.addOre(Blocks.diamond_ore.getState(), 4, 4, 12, 0, 60, false)
.setTimeQualifier(1), "sol");
registerPlanet("neptune", "Neptun", new Planet(0xb4d9ff, 0x85bef9, 0x649bd3, 24764000, 1444584441L, 16110L, 11.15f, 72.0f)
.setPerlinGen(Blocks.packed_ice.getState(), Blocks.water.getState(), 70)
.addOre(Blocks.diamond_ore.getState(), 4, 2, 1, 0, 60, false)
.setTimeQualifier(1), "sol");
registerPlanet("ceres", "Ceres", new Planet(0x666666, 0x535353, 0x858585, 473000, 40315496L, 9074L, 0.27f, 167.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
registerPlanet("pluto", "Pluto", new Planet(0x666666, 0x535353, 0x858585, 1188300, 2173127098L, 153293L, 0.62f, 40.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
registerPlanet("haumea", "Haumea", new Planet(0x666666, 0x535353, 0x858585, 816000, 2487831667L, 3914L, 0.63f, 48.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
registerPlanet("makemake", "Makemake", new Planet(0x666666, 0x535353, 0x858585, 715000, 2684193293L, 22826L, 0.4f, 30.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
registerPlanet("eris", "Eris", new Planet(0x666666, 0x535353, 0x858585, 1163000, 4900274496L, 378862L, 0.82f, 30.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63)
.setTimeQualifier(1), "sol");
});
registerPlanet("Saturn", new Planet(0xf1d1a1, 0xd3b385, 0xeed7b5, 60268000, 258141008L, 10656L, 10.44f, 133.0f).enableDenseFog()
.setFlatGen(Blocks.hydrogen.getState(), 256).setCloudHeight(576.0f), () -> {
registerStar("girok", "Gi'rok", new Star(0xff8f00, 603421976, 232.0f, 5220.0f, Blocks.lava.getState(), 112).setTimeQualifier(2), "solar");
registerPlanet("gharoth", "'Elbenplanet Gharoth'", new Planet(0xffffffff, 0xc0d8ff, 0xffffff, 2806382, 4837386L, 52960L, 30.0f, 10.0f, 257.3f)
.setTimeQualifier(2).setSimpleGen(Blocks.dirt.getState(), Blocks.water.getState(), 64)
});
registerPlanet("Uranus", new Planet(0xcee6ff, 0xadd2f9, 0x8eb0d3, 25559000, 736503770L, 17240L, 8.87f, 78.0f)
.setPerlinGen(Blocks.packed_ice.getState(), Blocks.water.getState(), 70)
.addOre(Blocks.diamond_ore.getState(), 4, 4, 12, 0, 60, false), () -> {
});
registerPlanet("neptune", "Planet Neptun", new Planet(0xb4d9ff, 0x85bef9, 0x649bd3, 24764000, 1444584441L, 16110L, 11.15f, 72.0f)
.setPerlinGen(Blocks.packed_ice.getState(), Blocks.water.getState(), 70)
.addOre(Blocks.diamond_ore.getState(), 4, 2, 1, 0, 60, false), () -> {
registerMoon("Triton", 1353400, 141044L, 0.779f, 38.0f);
// registerMoon("Nereid", , L, f, .0f);
// registerMoon("Naiad", , L, f, .0f);
// registerMoon("Thalassa", , L, f, .0f);
// registerMoon("Despina", , L, f, .0f);
// registerMoon("Galatea", , L, f, .0f);
// registerMoon("Larissa", , L, f, .0f);
// registerMoon("Proteus", , L, f, .0f);
// registerMoon("Halimede", , L, f, .0f);
// registerMoon("Psamathe", , L, f, .0f);
// registerMoon("Sao", , L, f, .0f);
// registerMoon("Laomedeia", , L, f, .0f);
// registerMoon("Neso", , L, f, .0f);
// registerMoon("Hippocamp", , L, f, .0f);
});
registerPlanet("Ceres", new Planet(0x666666, 0x535353, 0x858585, 473000, 40315496L, 9074L, 0.27f, 167.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63));
registerPlanet("Pluto", new Planet(0x666666, 0x535353, 0x858585, 1188300, 2173127098L, 153293L, 0.62f, 40.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63), () -> {
registerMoon("Charon", 606000, 153293L, 0.288f, 53.0f);
registerMoon("Nix", 22500, 596511L, 0.0028f, 38.0f);
registerMoon("Hydra", 27500, 916842L, 0.051f, 23.0f);
registerMoon("Kerberos", 7000, 772021L, 0.0015f, 19.0f);
registerMoon("Styx", 5500, 483877L, 77760L, 0.0013f, 18.0f);
});
registerPlanet("Haumea", new Planet(0x666666, 0x535353, 0x858585, 816000, 2487831667L, 3914L, 0.63f, 48.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63));
registerPlanet("Makemake", new Planet(0x666666, 0x535353, 0x858585, 715000, 2684193293L, 22826L, 0.4f, 30.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63));
registerPlanet("Eris", new Planet(0x666666, 0x535353, 0x858585, 1163000, 4900274496L, 378862L, 0.82f, 30.0f)
.setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63));
});
registerStar("Gi'rok", 603421976, 232.0f, 5220.0f, () -> {
registerPlanet("gharoth", "Elbenplanet Gharoth", new Planet(2806382, 4837386L, 52960L, 30.0f, 10.0f, 257.3f)
.setSimpleGen(Blocks.dirt.getState(), Blocks.water.getState(), 64)
.setSimpleReplacer(Blocks.gravel.getState(), Blocks.sand.getState()).setBiome(Biome.ELVENFOREST)
.enableCaves(Blocks.air.getState()).setDungeons(4).enableMobs().enableSnow()
.addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false)
@ -388,9 +504,9 @@ public abstract class UniverseRegistry {
.addLiquid(Blocks.flowing_water.getState(), 50, 8, 255, false)
.addLiquid(Blocks.flowing_lava.getState(), 20, 8, 255, true)
.addOre(Blocks.thetium_ore.getState(), 1, 0, 3, 0, 14, false)
.addOre(Blocks.gyriyn_ore.getState(), 0, 2, 3, 0, 12, false), "girok");
registerPlanet("transylvania", "'Vampirplanet Transsylvanien'", new Planet(0xffffffff, 0xc0d8ff, 0xffffff, 8374921, 33850466L, 49760L, 20.0f, 10.0f, 255.5f)
.setTimeQualifier(5).setPerlinGen(Blocks.rock.getState(), Blocks.water.getState(), 63)
.addOre(Blocks.gyriyn_ore.getState(), 0, 2, 3, 0, 12, false));
registerPlanet("transylvania", "Vampirplanet Transsylvanien", new Planet(8374921, 33850466L, 49760L, 20.0f, 10.0f, 255.5f)
.setPerlinGen(Blocks.rock.getState(), Blocks.water.getState(), 63)
.setBiomeReplacer(Blocks.gravel.getState()).setBiomeGen(Biome.FOREST, true, 5, 3, 3, 30)
.enableCavesRavines(Blocks.lava.getState()).setDungeons(10).enableMobs().enableSnow()
.addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false)
@ -400,15 +516,14 @@ public abstract class UniverseRegistry {
.addOre(Blocks.coal_ore.getState(), 12, 0, 14, 4, 28, false)
.addOre(Blocks.lead_ore.getState(), 2, 0, 8, 0, 8, false)
.addOre(Blocks.ardite_ore.getState(), 0, 2, 3, 0, 12, false)
.addOre(Blocks.nichun_ore.getState(), 0, 10, 1, 0, 10, false), "girok");
registerMoon("yrdinath", "'Eismond Yrdinath'", new Moon(0xccccff, 0xccccff, 2503812, 46743637L, 17460L, 2.5f, 239.15f, 8).setTimeQualifier(4)
.setPerlinGen(Blocks.snow.getState(), Blocks.ice.getState(), 63).setBiome(Biome.SNOWLAND)
.enableMobs().enableSnow().setDefaultWeather(Weather.SNOW), "transylvania");
registerMoon("mythril", "'Eismond Mythril'", new Moon(0xbbbbff, 0xbbbbff, 2213749, 42659432L, 15330L, 2.25f, 221.65f, 8).setTimeQualifier(4)
.setPerlinGen(Blocks.snow.getState(), Blocks.ice.getState(), 63).setBiome(Biome.SNOWLAND)
.enableMobs().enableSnow().setDefaultWeather(Weather.SNOW), "transylvania");
registerPlanet("mesar", "'Wüstenplanet Me'sar'", new Planet(0xff7f3f, 0xff6022, 0xff6f00, 9823183, 56643366L, 87340L, 11.0f, 333.15f)
.setTimeQualifier(5).setPerlinGen(Blocks.rock.getState(), Blocks.air.getState(), 63)
.addOre(Blocks.nichun_ore.getState(), 0, 10, 1, 0, 10, false), () -> {
registerMoon("yrdinath", "Eismond Yrdinath", new Moon(0xccccff, 2503812, 46743637L, 17460L, 2.5f, 239.15f, Blocks.snow, Blocks.ice)
.setBiome(Biome.SNOWLAND).enableMobs().enableSnow().setDefaultWeather(Weather.SNOW));
registerMoon("mythril", "Eismond Mythril", new Moon(0xbbbbff, 2213749, 42659432L, 15330L, 2.25f, 221.65f, Blocks.snow, Blocks.ice)
.setBiome(Biome.SNOWLAND).enableMobs().enableSnow().setDefaultWeather(Weather.SNOW));
});
registerPlanet("mesar", "Wüstenplanet Me'sar", new Planet(0xff7f3f, 0xff6022, 0xff6f00, 9823183, 56643366L, 87340L, 11.0f, 333.15f)
.setPerlinGen(Blocks.rock.getState(), Blocks.air.getState(), 63)
.setBiomeReplacer(Blocks.red_sand.getState())
.setBiomeGen(Biome.MESA, true, 3, 1000, 100000, 100000)
.enableCavesRavines(Blocks.lava.getState()).enableMobs()
@ -419,20 +534,25 @@ public abstract class UniverseRegistry {
.addOre(Blocks.lead_ore.getState(), 6, 0, 14, 0, 32, false)
.addOre(Blocks.copper_ore.getState(), 8, 2, 12, 0, 52, false)
.addOre(Blocks.coal_ore.getState(), 8, 4, 30, 0, 16, false)
.addOre(Blocks.stone.getState(), 8, 4, 33, 0, 80, false), "girok");
registerGalaxy("drkthrn", "Drkthrn");
registerSector("blvck", "Blvck", "drkthrn");
registerStar("ovrol", "Ov'rol", new Star(0x000000, 832718528, 302.0f, 12666.0f, Blocks.goo.getState(), 192), "blvck");
registerPlanet("blackplanet", "'Schwarzplanet'", new Planet(0x000000, 0x000000, 0x000000, 13038204, 4632918508L, 204556L, 12.0f, 0.0f)
.addOre(Blocks.stone.getState(), 8, 4, 33, 0, 80, false));
});
});
});
registerGalaxy("Drkthrn", () -> {
registerSector("blvck", "Sectvr Blvck", () -> {
registerStar("Ov'rol", new Star(0x000000, 832718528, 302.0f, 12666.0f, Blocks.goo), () -> {
registerPlanet("blackplanet", "Der Schwarze Planet", new Planet(0x000000, 0x000000, 0x000000, 13038204, 4632918508L, 204556L, 12.0f, 0.0f)
.setPerlinGen(Blocks.blackened_stone.getState(), Blocks.goo.getState(), 63)
.setBiomeReplacer(Blocks.blackened_cobble.getState()).setBiome(Biome.BLACKENED)
.enableCaves(Blocks.air.getState()).setDungeons(4).enableMobs()
.addLake(Blocks.goo.getState(), null, null, 8, 8, 255, true)
// .addOre(Blocks.PLACEHOLDER_ore.getState(), 0, 2, 3, 0, 12, false)
, "ovrol");
// .addOre(Blocks.PLACEHOLDER_ore.getState(), 0, 2, 3, 0, 12, false)
);
});
});
});
registerSemi("warp", "Der Warp", new Semi(0x0c001f, 0x0c001f, 0x190033, 124072917, 285.0f, 3).setCloudTexture(CloudType.DENSE).setCloudHeight(238.0f)
registerSemi("warp", "Der Warp", new Semi(0x0c001f, 0x190033, 124072917, 285.0f, 3).setCloudTexture(CloudType.DENSE).setCloudHeight(238.0f)
.setPerlinGen(Blocks.obsidian.getState(), Blocks.lava.getState(), 63)
.setBiome(Biome.CHAOS).enableCavesRavines(Blocks.air.getState()).enableLongCaves().enableMobs().enableSnow()
.addLake(Blocks.water.getState(), null, Blocks.obsidian.getState(), 8, 0, 255, false)
@ -442,45 +562,46 @@ public abstract class UniverseRegistry {
.setStarBrightness(0.9f).setDeepStarBrightness(0.6f)
.setStarColorSin(25.0f, 0.1f, 0.25f, 0xff00ff, 1, 4).setDeepStarColorSin(25.0f, 0.1f, 0.5f, 0xff00ff, 1, 4));
registerDomain("tianxin", "Tian'Xin");
registerArea("nienrath", "Ni'enrath", new Area(0x7f00ff, 0x7f00ff, 532109, 276.15f, 1).setLightColor(0x07000f).setBlockColor(0xcf6fff)
registerDomain("Tian'Xin", () -> {
registerArea("Ni'enrath", new Area(0x7f00ff, 532109, 276.15f, 1).setLightColor(0x07000f).setBlockColor(0xcf6fff)
.setPerlinGen(Blocks.tian.getState(), Blocks.springwater.getState(), 63).setBiome(Biome.TIAN)
.setBiomeReplacer(Blocks.tian.getState()).enableLongCaves().enableMobs().enableSnow()
.addLake(Blocks.springwater.getState(), Blocks.tian.getState(), Blocks.tian.getState(), 4, 0, 255, false)
.addLiquid(Blocks.flowing_springwater.getState(), 50, 8, 255, false), "tianxin");
registerDomain("digital", "Digital");
registerArea("cyberspace", "Cyberspace", new Area(0x000000, 0x000000, 16777216, 293.15f, 15).setLightColor(0x00ff00).setBlockColor(0xff0000).enableBlockLightSubtraction()
.addLiquid(Blocks.flowing_springwater.getState(), 50, 8, 255, false));
});
registerDomain("Digital", () -> {
registerArea("Cyberspace", new Area(0x000000, 16777216, 293.15f, 15).setLightColor(0x00ff00).setBlockColor(0xff0000).enableBlockLightSubtraction()
.setFlatGen(Blocks.green_clay.getState(), 2)
.enableMobs(), "digital");
registerDomain("hell", "Hölle");
registerArea("thedric", "Kreis Thedric", new Area(0x330707, 0x330707, 105639735, 347.15f, 2).enableLongCaves().enableMobs().enableFortresses()
.enableMobs());
});
registerDomain("hell", "Hölle", () -> {
registerArea("thedric", "Kreis Thedric", new Area(0x330707, 105639735, 347.15f, 2).enableLongCaves().enableMobs().enableFortresses()
.enableWorldCeiling().enableDenseFog()
.setCavernGen(Blocks.hellrock.getState(), Blocks.lava.getState(), 63)
.setSurfaceReplacer(Blocks.gravel.getState(), Blocks.soul_sand.getState())
.setBiome(Biome.UPPERHELL), "hell");
registerArea("kyroth", "Kreis Kyroth", new Area(0x990000, 0x990000, 86742970, 387.15f, 3).enableLongCaves().enableMobs()
.setBiome(Biome.UPPERHELL));
registerArea("kyroth", "Kreis Kyroth", new Area(0x990000, 86742970, 387.15f, 3).enableLongCaves().enableMobs()
.setSimpleGen(Blocks.hellrock.getState(), Blocks.lava.getState(), 64)
.setSimpleReplacer(Blocks.obsidian.getState(), Blocks.soul_sand.getState())
.setBiome(Biome.LOWERHELL)
.addLake(Blocks.lava.getState(), null, null, 4, 8, 255, false)
.addLiquid(Blocks.flowing_lava.getState(), 40, 8, 255, true), "hell");
registerArea("ahrd", "Kreis Ahrd", new Area(0xcc0000, 0xcc0000, 67028432, 467.15f, 15).enableLongCaves().enableMobs()
.addLiquid(Blocks.flowing_lava.getState(), 40, 8, 255, true));
registerArea("ahrd", "Kreis Ahrd", new Area(0xcc0000, 67028432, 467.15f, 15).enableLongCaves().enableMobs()
.setPerlinGen(Blocks.hellrock.getState(), Blocks.lava.getState(), 63)
.setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.HELLHILLS)
.addLake(Blocks.lava.getState(), Blocks.soul_sand.getState(), Blocks.soul_sand.getState(),
2, 8, 255, false).addLiquid(Blocks.flowing_lava.getState(), 80, 8, 255, true), "hell");
registerArea("mizorath", "Kreis Mizorath", new Area(0xff0000, 0xff0000, 54029584, 1067.15f, 15).enableMobs()
2, 8, 255, false).addLiquid(Blocks.flowing_lava.getState(), 80, 8, 255, true));
registerArea("mizorath", "Kreis Mizorath", new Area(0xff0000, 54029584, 1067.15f, 15).enableMobs()
.setPerlinGen(Blocks.hellrock.getState(), Blocks.blood.getState(), 63)
.setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.SOULPLAINS), "hell");
registerArea("dargoth", "Kreis Dargoth", new Area(0xff3f0c, 0xff3f0c, 43293629, 1707.15f, 15).enableMobs()
.setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.SOULPLAINS));
registerArea("dargoth", "Kreis Dargoth", new Area(0xff3f0c, 43293629, 1707.15f, 15).enableMobs()
.setPerlinGen(Blocks.hellrock.getState(), Blocks.magma.getState(), 63)
.setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.SOULPLAINS), "hell");
registerArea("aasirith", "Kreis Aasirith", new Area(0x191919, 0x191919, 36291872, 2482.0f, 1).enableLongCaves().enableMobs()
.setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.SOULPLAINS));
registerArea("aasirith", "Kreis Aasirith", new Area(0x191919, 36291872, 2482.0f, 1).enableLongCaves().enableMobs()
.setPerlinGen(Blocks.rock.getState(), Blocks.magma.getState(), 63)
.setBiomeReplacer(Blocks.ash.getState()).setBiome(Biome.ASHLAND)
.addLake(Blocks.lava.getState(), Blocks.rock.getState(), Blocks.rock.getState(),
2, 8, 255, false).addLiquid(Blocks.flowing_lava.getState(), 80, 8, 255, true), "hell");
2, 8, 255, false).addLiquid(Blocks.flowing_lava.getState(), 80, 8, 255, true));
});
}
}

View file

@ -65,7 +65,7 @@ public class ItemCharTemplate extends Item
public void addInformation(ItemStack stack, EntityNPC player, List<String> tooltip) {
Dimension dim = this.spawned.species.origin == null ? null : UniverseRegistry.getDimension(this.spawned.species.origin);
tooltip.add(TextColor.ORANGE + "Herkunft: " + (dim == null ? "???" : dim.getNameString()));
tooltip.add(TextColor.ORANGE + "Herkunft: " + (dim == null ? "???" : dim.getDisplay()));
}
public boolean onItemUse(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, Facing side, float hitX, float hitY, float hitZ)

View file

@ -57,7 +57,7 @@ public class ItemMobTemplate extends Item
EntityInfo egg = EntityRegistry.DNA.get(this.entityId);
if(egg != null) {
Dimension dim = egg.origin() == null ? null : UniverseRegistry.getDimension(egg.origin());
tooltip.add(TextColor.ORANGE + "Herkunft: " + (dim == null ? "???" : dim.getNameString()));
tooltip.add(TextColor.ORANGE + "Herkunft: " + (dim == null ? "???" : dim.getDisplay()));
}
}

View file

@ -23,9 +23,9 @@ public class ItemExterminator extends ItemMagnetic {
if(world.dimension == Space.INSTANCE)
player.connection.addHotbar(TextColor.RED + "Der Weltraum kann nicht zerstört werden (lol)");
else if(!((AWorldServer)world).exterminate())
player.connection.addHotbar(TextColor.YELLOW + "Die Welt %s ist bereits zerstört", world.dimension.getNameString());
player.connection.addHotbar(TextColor.YELLOW + "Die Welt %s ist bereits zerstört", world.dimension.getDisplay());
else
player.connection.addHotbar(TextColor.CRIMSON + "Die Welt %s wurde vernichtet >:)-", world.dimension.getNameString());
player.connection.addHotbar(TextColor.CRIMSON + "Die Welt %s wurde vernichtet >:)-", world.dimension.getDisplay());
// if (!playerIn.capabilities.isCreativeMode)
// {

View file

@ -16,7 +16,7 @@ public class ItemScanner extends ItemWand {
public void onUse(ItemStack stack, EntityNPC player, AWorldServer world, Vec3 vec)
{
Biome biome = world.getBiomeGenForCoords(new BlockPos(vec.xCoord, 0, vec.zCoord));
player.connection.addHotbar(TextColor.NEON + "* Position in %s: %.3f %.3f %.3f, %s, %.2f °C", world.dimension.getNameString(),
player.connection.addHotbar(TextColor.NEON + "* Position in %s: %.3f %.3f %.3f, %s, %.2f °C", world.dimension.getDisplay(),
vec.xCoord, vec.yCoord, vec.zCoord,
biome.display, world.getTemperatureC(new BlockPos(vec)));
}

View file

@ -16,19 +16,19 @@ public class ItemSpaceNavigator extends ItemMagnetic {
public String getHotbarText(EntityNPC player, ItemStack stack) {
BlockPos pos = player.getPosition();
return TextColor.ORANGE + player.worldObj.formatImperialTime(false) + " / " +
String.format("%s bei %d, %d, %d", player.worldObj.dimension.getNameString() + TextColor.ORANGE,
return TextColor.ORANGE + player.worldObj.formatImperialTime(player, false) + " / " +
String.format("%s bei %d, %d, %d", player.worldObj.dimension.getDisplay() + TextColor.ORANGE,
pos.getX(), pos.getY(), pos.getZ());
}
public void addInformation(ItemStack stack, EntityNPC player, List<String> tooltip) {
tooltip.add(TextColor.ORANGE + player.worldObj.formatImperialTime(true));
tooltip.add(TextColor.ORANGE + player.worldObj.formatImperialTime(player, true));
String[] dims = player.worldObj.dimension.getBaseNames();
for(int z = dims.length - 1; z >= 0; z--) {
tooltip.add(TextColor.ORANGE + dims[z]);
}
BlockPos pos = player.getPosition();
tooltip.add(TextColor.ORANGE + String.format("%s bei %d, %d, %d", player.worldObj.dimension.getNameString()
tooltip.add(TextColor.ORANGE + String.format("%s bei %d, %d, %d", player.worldObj.dimension.getDisplay()
+ TextColor.ORANGE, pos.getX(), pos.getY(), pos.getZ()));
}
}

View file

@ -55,7 +55,8 @@ public class SPacketCharacterList implements Packet<IClientPlayer> {
BlockPos pos = buf.readBlockPos();
String type = buf.readString(256);
int level = buf.readVarInt();
this.players.put(id, new PlayerCharacter(name, info, align, dim, pos, type, level));
String origin = buf.readString(256);
this.players.put(id, new PlayerCharacter(name, info, align, dim, pos, type, level, origin));
}
this.selected = buf.readVarInt();
}
@ -76,6 +77,7 @@ public class SPacketCharacterList implements Packet<IClientPlayer> {
buf.writeBlockPos(chr.pos());
buf.writeString(chr.type());
buf.writeVarInt(chr.level());
buf.writeString(chr.origin());
}
buf.writeVarInt(this.selected);
}

View file

@ -16,7 +16,7 @@ public class SPacketDimensionName implements Packet<IClientPlayer> {
public SPacketDimensionName(Dimension dim) {
this.fullName = dim.getBaseNames();
this.customName = dim.getCustomName();
this.customName = dim.getDisplay();
}
public void processPacket(IClientPlayer handler) {

View file

@ -38,7 +38,7 @@ public class SPacketRespawn implements Packet<IClientPlayer> {
}
if(dim.isCustom()) {
this.dimName = UniverseRegistry.getName(dim);
this.dimDisplay = dim.getCustomName();
this.dimDisplay = dim.getDisplay();
this.dimFull = dim.getBaseNames();
this.dimId = -1;
}
@ -115,7 +115,7 @@ public class SPacketRespawn implements Packet<IClientPlayer> {
}
if(!dim.isCustom())
return dim;
dim.setCustomName(this.dimDisplay);
dim.setDisplay(this.dimDisplay);
dim.setBaseNames(this.dimFull);
return dim;
}

View file

@ -5,19 +5,25 @@ import common.world.AWorldServer;
public class TileEntityDaylightDetector extends TileEntity implements ITickable
{
/**
* Like the old updateEntity(), except more generic.
*/
private int updateTimer;
public void update()
{
if (this.worldObj != null && !this.worldObj.client && ((AWorldServer)this.worldObj).getTime() % 20L == 0L)
if (this.worldObj != null && !this.worldObj.client)
{
if(this.updateTimer <= 0) {
this.blockType = this.getBlockType();
if (this.blockType instanceof BlockDaylightDetector)
{
((BlockDaylightDetector)this.blockType).updatePower((AWorldServer)this.worldObj, this.pos);
}
this.updateTimer = 20;
}
else {
--this.updateTimer;
}
}
}

View file

@ -47,7 +47,6 @@ public abstract class AWorldServer extends World {
public abstract int getSkylightSubtracted();
public abstract boolean isBlockinHighHumidity(BlockPos pos);
public abstract <T extends Entity> T findNearestEntityWithinAABB(Class<? extends T> entityType, BoundingBox aabb, T closestTo);
public abstract long getTime();
public abstract void setBiome(BlockPos pos, Biome biome);
public abstract void markChunkDirty(BlockPos pos);
}

View file

@ -20,12 +20,19 @@ import common.collect.Lists;
import common.collect.Sets;
import common.dimension.DimType;
import common.dimension.Dimension;
import common.dimension.Galaxy;
import common.dimension.Moon;
import common.dimension.Planet;
import common.dimension.Sector;
import common.dimension.Space;
import common.dimension.Star;
import common.entity.Entity;
import common.entity.item.EntityExplosion;
import common.entity.npc.EntityNPC;
import common.init.BlockRegistry;
import common.init.Blocks;
import common.init.SoundEvent;
import common.init.UniverseRegistry;
import common.item.ItemStack;
import common.rng.Random;
import common.tileentity.ITickable;
@ -57,7 +64,6 @@ public abstract class World implements IWorldAccess {
public static final int MAX_SIZE_Y = 4096;
public static final long START_TIME = 4385238000L;
public static final float ABSOLUTE_ZERO = -273.15f;
public static final long EARTH_YEAR = 8766144L;
public final boolean client;
public final Random rand = new Random();
@ -132,20 +138,65 @@ public abstract class World implements IWorldAccess {
this.gravity = 0.0;
}
public String formatImperialTime(boolean days) {
long time = this.daytime;
long year = time / EARTH_YEAR;
long frac = (time * 1000L / EARTH_YEAR) % 1000L;
if(!this.dimension.getType().celestial) {
return String.format("%d.%03d.%03d.M%d" + (days ? " T???.??? D???.???.G?" : ""), this.dimension.getTimeQualifier(),
frac, year % 1000L, year / 1000L + 1L);
private int getTimeQualifier(Planet homePlanet) {
if(this.dimension == Space.INSTANCE)
return 7;
else if(this.dimension.getType() == DimType.SEMI)
return 8;
else if(this.dimension.getType() == DimType.AREA)
return 9;
if(this.dimension == homePlanet)
return 0;
Star homeStar = UniverseRegistry.getStar(homePlanet);
if(this.dimension == homeStar)
return 3;
Moon moon = this.dimension.getType() == DimType.MOON ? (Moon)this.dimension : null;
Planet planet = this.dimension.getType() == DimType.PLANET ? (Planet)this.dimension : (moon != null ? UniverseRegistry.getPlanet(moon) : null);
if(planet == homePlanet)
return 1;
Star star = this.dimension.getType() == DimType.STAR ? (Star)this.dimension : (planet != null ? UniverseRegistry.getStar(planet) : null);
if(star == homeStar)
return 2;
Sector homeSector = UniverseRegistry.getSector(homeStar);
Sector sector = star != null ? UniverseRegistry.getSector(star) : null;
if(sector == homeSector)
return 4;
if(sector != null && UniverseRegistry.getGalaxy(sector) == UniverseRegistry.getGalaxy(homeSector))
return 5;
return 6;
}
public String formatImperialTime(Dimension home, boolean days) {
String qualifier = home != null ? (home.getType() == DimType.PLANET ? this.getTimeQualifier((Planet)home) + "." : "?.") : "";
long time = this.daytime;
String gtime;
if((home == null || !home.getType().celestial) && !this.dimension.getType().celestial) {
gtime = "???.???.M?";
}
else {
long yearTime = (home != null && home.getType().celestial ? home : this.dimension).getOrbitalPeriod();
long year = time / yearTime;
long frac = (time * 1000L / yearTime) % 1000L;
gtime = String.format("%03d.%03d.M%d", frac, year % 1000L, year / 1000L + 1L);
}
if(!days)
return qualifier + gtime;
String ltime;
if(!this.dimension.getType().celestial) {
ltime = " T???.??? D???.???.G?";
}
else {
long day = time / this.dimension.getRotationalPeriod();
time = time % this.dimension.getRotationalPeriod();
return String.format("%d.%03d.%03d.M%d" + (days ? " T%03d.%03d D%03d.%03d.G%d" : ""), this.dimension.getTimeQualifier(),
frac, year % 1000L, year / 1000L + 1L,
ltime = String.format(" T%03d.%03d D%03d.%03d.G%d",
time / 1000L, time % 1000L, (day / 1000L) % 1000L, day % 1000L, day / 1000000L);
}
return qualifier + gtime + ltime;
}
public String formatImperialTime(EntityNPC player, boolean days) {
return this.formatImperialTime(player == null ? null : player.getOrigin().getDimension(), days);
}
public abstract Biome getBiomeGenForCoords(BlockPos pos);

View file

@ -307,7 +307,7 @@ public final class Server implements IThreadListener, Executor {
TagObject data = new TagObject();
data.setString("Type", dim.getType().getName());
data.setString("Name", UniverseRegistry.getName(dim));
data.setString("CustomName", dim.getCustomName());
data.setString("CustomName", dim.getDisplay());
switch(dim.getType()) {
case AREA:
data.setString("Domain", UniverseRegistry.getDomain((Area)dim).id);
@ -330,7 +330,7 @@ public final class Server implements IThreadListener, Executor {
TagObject data = new TagObject();
data.setString("Type", "sector");
data.setString("Name", sector.id);
data.setString("CustomName", sector.getCustomName());
data.setString("CustomName", sector.getDisplay());
data.setString("Galaxy", UniverseRegistry.getGalaxy(sector).id);
list.add(data);
}
@ -340,7 +340,7 @@ public final class Server implements IThreadListener, Executor {
TagObject data = new TagObject();
data.setString("Type", "galaxy");
data.setString("Name", galaxy.id);
data.setString("CustomName", galaxy.getCustomName());
data.setString("CustomName", galaxy.getDisplay());
list.add(data);
}
}
@ -349,7 +349,7 @@ public final class Server implements IThreadListener, Executor {
TagObject data = new TagObject();
data.setString("Type", "domain");
data.setString("Name", domain.id);
data.setString("CustomName", domain.getCustomName());
data.setString("CustomName", domain.getDisplay());
list.add(data);
}
}
@ -440,7 +440,7 @@ public final class Server implements IThreadListener, Executor {
}
dim.readData(tag == null ? new TagObject() : tag);
if(tag == null || !tag.hasLong("Seed"))
Log.TICK.info("Startwert für %s: %d" + (Vars.seed.isEmpty() ? "" : " von Basiswert '%s'"), dim.getNameString(), dim.getSeed(), Vars.seed);
Log.TICK.info("Startwert für %s: %d" + (Vars.seed.isEmpty() ? "" : " von Basiswert '%s'"), dim.getDisplay(), dim.getSeed(), Vars.seed);
}
private void saveDimension(Dimension dim) {
@ -1081,7 +1081,7 @@ public final class Server implements IThreadListener, Executor {
if(message != null)
conn.addHotbar(TextColor.DRED + message);
conn.addFeed(TextColor.RED + "* Bei %d, %d, %d in Dimension %s gestorben", pos.getX(), pos.getY(), pos.getZ(),
old.worldObj.dimension.getNameString());
old.worldObj.dimension.getDisplay());
}
public TagObject swapPlayer(Player conn, TagObject tag, Class<? extends EntityNPC> clazz) {

View file

@ -20,7 +20,7 @@ public class WorldParser extends DimensionParser {
Dimension dim = (Dimension)super.parse(env, input);
WorldServer world = this.loadedOnly ? env.getServer().getWorldNoLoad(dim) : env.getServer().getWorld(dim);
if(world == null)
throw new RunException("Dimension '%s' ist nicht geladen", dim.getNameString());
throw new RunException("Dimension '%s' ist nicht geladen", dim.getDisplay());
return world;
}

View file

@ -59,7 +59,7 @@ public class CommandBlock extends Command {
}
}
if(success)
exec.log("%s bei %d, %d, %d in %s gesetzt", state.getBlock().getDisplay(), position.getX(), position.getY(), position.getZ(), world.dimension.getNameString());
exec.log("%s bei %d, %d, %d in %s gesetzt", state.getBlock().getDisplay(), position.getX(), position.getY(), position.getZ(), world.dimension.getDisplay());
else
exec.log("Block wurde nicht verändert");
return success;

View file

@ -27,7 +27,7 @@ public class CommandDeathspot extends Command {
throw new RunException("%s hat keinen letzten Todespunkt", player.getCommandName());
for(Entity entity : entities) {
entity.teleport(pos);
exec.log("%s zum Todespunkt von %s (%d, %d, %d in %s) teleportiert", entity.getCommandName(), player.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getNameString());
exec.log("%s zum Todespunkt von %s (%d, %d, %d in %s) teleportiert", entity.getCommandName(), player.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getDisplay());
}
return entities.size();
}

View file

@ -20,6 +20,6 @@ public class CommandDelwarp extends Command {
throw new RunException("Warp '%s' existiert nicht", warp);
Position pos = env.getServer().getWarps().remove(warp);
Dimension wdim = pos.getDimension();
exec.log("Warp %s bei %d, %d, %d in %s entfernt", warp, ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), wdim == null ? "<?>" : wdim.getNameString());
exec.log("Warp %s bei %d, %d, %d in %s entfernt", warp, ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), wdim == null ? "<?>" : wdim.getDisplay());
}
}

View file

@ -28,13 +28,13 @@ public class CommandEntity extends Command {
entity.writeTags(etag);
if(tag == null) {
exec.log("************************************************************");
exec.log("Daten von %s bei %d, %d, %d in %s:", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), entity.worldObj.dimension.getNameString());
exec.log("Daten von %s bei %d, %d, %d in %s:", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), entity.worldObj.dimension.getDisplay());
exec.log(etag.format(4));
}
else {
etag.merge(tag);
entity.readTags(etag);
exec.log("Daten von %s bei %d, %d, %d in %s geändert", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), entity.worldObj.dimension.getNameString());
exec.log("Daten von %s bei %d, %d, %d in %s geändert", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), entity.worldObj.dimension.getDisplay());
}
done++;
}

View file

@ -19,9 +19,9 @@ public class CommandExterminatus extends Command {
if(world.dimension == Space.INSTANCE)
throw new RunException("Der Weltraum kann nicht zerstört werden (lol?)");
else if(world.isExterminated())
throw new RunException("Dimension %s ist bereits zerstört", world.dimension.getNameString());
exec.log(TextColor.YELLOW + "Dimension %s wird zerstört ...", world.dimension.getNameString());
throw new RunException("Dimension %s ist bereits zerstört", world.dimension.getDisplay());
exec.log(TextColor.YELLOW + "Dimension %s wird zerstört ...", world.dimension.getDisplay());
world.exterminate();
exec.log(TextColor.CRIMSON + "Die Welt %s wurde vernichtet >:)-", world.dimension.getNameString());
exec.log(TextColor.CRIMSON + "Die Welt %s wurde vernichtet >:)-", world.dimension.getDisplay());
}
}

View file

@ -22,7 +22,7 @@ public class CommandFind extends Command {
for(Entity entity : entities) {
if(entity.isEntityAlive()) {
BlockPos pos = entity.getPosition();
exec.log("%s bei %d, %d, %d in %s gefunden %s", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), entity.worldObj.dimension.getNameString(),
exec.log("%s bei %d, %d, %d in %s gefunden %s", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), entity.worldObj.dimension.getDisplay(),
asCommand(TextColor.RESET, "tp #%d", entity.getId()));
done++;
}

View file

@ -12,7 +12,6 @@ import common.dimension.DimType;
import common.dimension.Dimension;
import common.dimension.Planet;
import common.dimension.Star;
import common.init.Blocks;
import common.init.NameRegistry;
import common.init.UniverseRegistry;
import common.rng.Random;
@ -36,7 +35,6 @@ public class CommandLoad extends Command {
if(!UniverseRegistry.isType(star, DimType.STAR) || UniverseRegistry.isRegistered(name))
return null;
Planet dim = new Planet(sky, fog, clouds, 17000000, orbit, rotation, offset, gravity, temperature, brightness);
dim.setTimeQualifier(3);
return UniverseRegistry.registerCustomPlanet(name, custom, dim, star);
}
@ -59,13 +57,12 @@ public class CommandLoad extends Command {
do {
sname = NameRegistry.FANTASY.generate(rand, rand.range(2, 5));
} while(UniverseRegistry.isRegistered(sname.toLowerCase()));
Star star = new Star(0xff0000 | (rand.range(0x60, 0xa0) << 8), rand.range(300000000, 1200000000),
rand.frange(200.0f, 400.0f), rand.frange(5000.0f, 7000.0f),
rand.pick(Blocks.lava.getState(), Blocks.magma.getState()), rand.range(64, 212));
UniverseRegistry.registerCustomGalaxy(galaxy.toLowerCase(), galaxy);
UniverseRegistry.registerCustomSector(sector.toLowerCase(), sector, galaxy.toLowerCase());
Star star = new Star(rand.range(300000000, 1200000000),
rand.frange(200.0f, 400.0f), rand.frange(5000.0f, 7000.0f));
UniverseRegistry.registerCustomGalaxy(galaxy.toLowerCase(), "Galaxie " + galaxy);
UniverseRegistry.registerCustomSector(sector.toLowerCase(), "Sektor " + sector, galaxy.toLowerCase());
UniverseRegistry.registerCustomStar(sname.toLowerCase(), sname, star, galaxy.toLowerCase());
UniverseRegistry.registerCustomPlanet(pname.toLowerCase(), pname, (Planet)preset, sname.toLowerCase());
UniverseRegistry.registerCustomPlanet(pname.toLowerCase(), "Planet " + pname, (Planet)preset, sname.toLowerCase());
}
else if(preset.getType() == DimType.AREA) {
String domain;
@ -95,7 +92,7 @@ public class CommandLoad extends Command {
this.addColor("sky", 's', 0xffffffff);
this.addColor("fog", 'f', 0xc0d8ff);
this.addColor("clouds", 'w', 0xffffff);
this.addLong("orbit", 'o', 1L, 1000000000000L, World.EARTH_YEAR);
this.addLong("orbit", 'o', 1L, 1000000000000L, 8000000L);
this.addLong("rotation", 'r', 1L, 1000000000000L, 24000L);
this.addDouble("offset", 'm', 0.0, 100000.0, 0.0);
this.addDouble("gravity", 'g', 0.0, 100000.0, 9.81);

View file

@ -33,7 +33,7 @@ public class CommandOfflinetp extends Command {
throw new RunException("Spieler '%s' konnte nicht gefunden werden", user);
for(Entity entity : entities) {
entity.teleport(pos);
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getNameString());
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getDisplay());
}
return entities.size();
}

View file

@ -27,7 +27,7 @@ public class CommandPlayers extends Command {
exec.log(TextColor.GREEN + "Es " + (players.size() == 1 ? "ist" : "sind") + " " + TextColor.YELLOW + "%d" + TextColor.GREEN + " Spieler online", players.size());
for(Player player : players) {
EntityNPC entity = player.getPresentEntity();
exec.log("%s%s" + TextColor.GRAY + ": '%s" + TextColor.GRAY + "'" + (coords && entity != null ? " [" + TextColor.ORANGE + "%s @ %d, %d, %d" + TextColor.GRAY + "]" : ""), player.isAdmin() ? TextColor.RED : TextColor.NEON, player.getUser(), entity == null ? TextColor.DGRAY + "<->" : TextColor.ACID + entity.getCommandName(), entity == null ? null : entity.worldObj.dimension.getNameString(), entity == null ? null : ExtMath.floord(entity.posX), entity == null ? null : ExtMath.floord(entity.posY), entity == null ? null : ExtMath.floord(entity.posZ));
exec.log("%s%s" + TextColor.GRAY + ": '%s" + TextColor.GRAY + "'" + (coords && entity != null ? " [" + TextColor.ORANGE + "%s @ %d, %d, %d" + TextColor.GRAY + "]" : ""), player.isAdmin() ? TextColor.RED : TextColor.NEON, player.getUser(), entity == null ? TextColor.DGRAY + "<->" : TextColor.ACID + entity.getCommandName(), entity == null ? null : entity.worldObj.dimension.getDisplay(), entity == null ? null : ExtMath.floord(entity.posX), entity == null ? null : ExtMath.floord(entity.posY), entity == null ? null : ExtMath.floord(entity.posZ));
}
}
}

View file

@ -13,8 +13,8 @@ public class CommandReset extends Command {
}
public void exec(CommandEnvironment env, Executor exec, WorldServer world) {
exec.log("Dimension %s wird zurückgesetzt ...", world.dimension.getNameString());
exec.log("Dimension %s wird zurückgesetzt ...", world.dimension.getDisplay());
world.reset();
exec.log("Dimension %s zurückgesetzt", world.dimension.getNameString());
exec.log("Dimension %s zurückgesetzt", world.dimension.getDisplay());
}
}

View file

@ -23,7 +23,7 @@ public class CommandReturn extends Command {
Position pos = ((Player)player.connection).getLastTeleport();
if(pos != null) {
player.teleport(pos);
exec.log("%s zum letzten Punkt (%d, %d, %d in %s) teleportiert", player.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getNameString());
exec.log("%s zum letzten Punkt (%d, %d, %d in %s) teleportiert", player.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getDisplay());
done++;
}
}

View file

@ -18,7 +18,7 @@ public class CommandSeed extends Command {
public Object exec(CommandEnvironment env, Executor exec, WorldServer world, boolean dump) {
if(dump)
exec.log("Daten: %s", world.dimension.dumpTags().format(4));
exec.log("Startwert von %s: %d", world.dimension.getNameString(), world.dimension.getSeed());
exec.log("Startwert von %s: %d", world.dimension.getDisplay(), world.dimension.getSeed());
return world.dimension.getSeed();
}
}

View file

@ -28,13 +28,13 @@ public class CommandSetwarp extends Command {
Position pos = env.getServer().getWarps().get(warp);
Dimension wdim = pos.getDimension();
if(wdim != null)
exec.log("Alte Position %d, %d, %d in %s entfernt", ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), dim.getNameString());
exec.log("Alte Position %d, %d, %d in %s entfernt", ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), dim.getDisplay());
}
else {
throw new RunException("Warp '%s' existiert bereits", warp);
}
}
env.getServer().getWarps().put(warp, new Position(position.xCoord, position.yCoord, position.zCoord, yaw == null ? 0.0f : yaw.floatValue(), pitch == null ? 0.0f : pitch.floatValue(), dim));
exec.log("Warp '%s' auf %d, %d, %d in %s gesetzt", warp, ExtMath.floord(position.xCoord), ExtMath.floord(position.yCoord), ExtMath.floord(position.zCoord), dim.getNameString());
exec.log("Warp '%s' auf %d, %d, %d in %s gesetzt", warp, ExtMath.floord(position.xCoord), ExtMath.floord(position.yCoord), ExtMath.floord(position.zCoord), dim.getDisplay());
}
}

View file

@ -19,6 +19,6 @@ public class CommandShowwarp extends Command {
throw new RunException("Warp '%s' existiert nicht", warp);
Position pos = env.getServer().getWarps().get(warp);
Dimension wdim = pos.getDimension();
exec.log("Warp %s ist bei %.2f, %.2f, %.2f [%.1f, %.1f] in %s", warp, pos.xCoord, pos.yCoord, pos.zCoord, pos.yaw(), pos.pitch(), wdim == null ? "<?>" : wdim.getNameString());
exec.log("Warp %s ist bei %.2f, %.2f, %.2f [%.1f, %.1f] in %s", warp, pos.xCoord, pos.yCoord, pos.zCoord, pos.yaw(), pos.pitch(), wdim == null ? "<?>" : wdim.getDisplay());
}
}

View file

@ -56,7 +56,7 @@ public class CommandSpawn extends Command {
tag != null && tag.hasInt("damage") ? tag.getInt("damage") : 0, tag != null && tag.hasBool("fire") && tag.getBool("fire"),
exec.isPlayer() && tag != null && tag.hasBool("summoned") && tag.getBool("summoned") ? ((Player)exec).getPresentEntity() : null);
}
exec.log("%sBlitz bei %d, %d, %d in %s erschaffen", count == 1 ? "" : (count + "x "), ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), world.dimension.getNameString());
exec.log("%sBlitz bei %d, %d, %d in %s erschaffen", count == 1 ? "" : (count + "x "), ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), world.dimension.getDisplay());
return null;
}
else {
@ -83,7 +83,7 @@ public class CommandSpawn extends Command {
}
spawned.add("#" + entity.getId());
}
exec.log("%s%s bei %d, %d, %d in %s erschaffen", count == 1 ? "" : (count + "x "), EntityRegistry.getEntityName(type), ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), world.dimension.getNameString());
exec.log("%s%s bei %d, %d, %d in %s erschaffen", count == 1 ? "" : (count + "x "), EntityRegistry.getEntityName(type), ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord), world.dimension.getDisplay());
return Util.buildLines(",", spawned);
}
}

View file

@ -28,7 +28,7 @@ public class CommandTele extends Command {
public Object exec(CommandEnvironment env, Executor exec, Vec3 position, Dimension dim, Double yaw, Double pitch, List<Entity> entities) {
for(Entity entity : entities) {
entity.teleport(position.xCoord, position.yCoord, position.zCoord, yaw == null ? entity.rotYaw : yaw.floatValue(), pitch == null ? entity.rotPitch : pitch.floatValue(), dim);
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), ExtMath.floord(position.xCoord), ExtMath.floord(position.yCoord), ExtMath.floord(position.zCoord), dim.getNameString());
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), ExtMath.floord(position.xCoord), ExtMath.floord(position.yCoord), ExtMath.floord(position.zCoord), dim.getDisplay());
}
return entities.size();
}

View file

@ -6,6 +6,7 @@ import server.command.Command;
import server.command.CommandEnvironment;
import server.command.Executor;
import server.command.RunException;
import server.network.Player;
import server.world.WorldServer;
public class CommandTime extends Command {
@ -89,7 +90,7 @@ public class CommandTime extends Command {
dim.setDayTime(time);
dim.resetWeather();
}
exec.log("Zeit auf %s gesetzt", world.formatImperialTime(false));
exec.log("Zeit auf %s gesetzt", world.formatImperialTime(exec.isPlayer() ? ((Player)exec).getPresentEntity() : null, false));
return time;
}
}

View file

@ -22,7 +22,7 @@ public class CommandTp extends Command {
Position pos = target.getPos();
for(Entity entity : entities) {
entity.teleport(pos);
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getNameString());
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getDisplay());
}
return entities.size();
}

View file

@ -23,7 +23,7 @@ public class CommandTphere extends Command {
throw new RunException("Keine Position zum Teleportieren vorhanden");
for(Entity entity : entities) {
entity.teleport(pos);
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getNameString());
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getDisplay());
}
return entities.size();
}

View file

@ -45,7 +45,7 @@ public class CommandWarp extends Command {
// }
for(Entity entity : entities) {
entity.teleport(pos);
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getNameString());
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), (int)pos.x(), (int)pos.y(), (int)pos.z(), pos.getDimension().getDisplay());
}
return entities.size();
}

View file

@ -32,15 +32,15 @@ public class CommandWarps extends Command {
n++;
}
if(dim != null && n == 0) {
exec.log(TextColor.DGRAY + "Es sind keine Warps in %s vorhanden", dim.getNameString());
exec.log(TextColor.DGRAY + "Es sind keine Warps in %s vorhanden", dim.getDisplay());
return;
}
exec.log(TextColor.GREEN + "Es " + (n == 1 ? "ist" : "sind") + " " + TextColor.YELLOW + "%d" + TextColor.GREEN + " Warp" + (n == 1 ? "" : "s") + " " + (dim == null ? "" : "in Dimension %s ") + "vorhanden", n, dim == null ? null : dim.getNameString());
exec.log(TextColor.GREEN + "Es " + (n == 1 ? "ist" : "sind") + " " + TextColor.YELLOW + "%d" + TextColor.GREEN + " Warp" + (n == 1 ? "" : "s") + " " + (dim == null ? "" : "in Dimension %s ") + "vorhanden", n, dim == null ? null : dim.getDisplay());
for(Entry<String, Position> warp : warps.entrySet()) {
Position pos = warp.getValue();
Dimension wdim = pos.getDimension();
if(wdim != null && (dim == null || wdim == dim))
exec.log(TextColor.NEON + "%s" + TextColor.GRAY + ": " + TextColor.ORANGE + "%s" + (dim == null ? " @ " : "") + "%d, %d, %d", warp.getKey(), dim != null ? "" : wdim.getNameString(), ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord));
exec.log(TextColor.NEON + "%s" + TextColor.GRAY + ": " + TextColor.ORANGE + "%s" + (dim == null ? " @ " : "") + "%d, %d, %d", warp.getKey(), dim != null ? "" : wdim.getDisplay(), ExtMath.floord(pos.xCoord), ExtMath.floord(pos.yCoord), ExtMath.floord(pos.zCoord));
}
}
}

View file

@ -20,12 +20,12 @@ public class CommandWeather extends Command {
public void exec(CommandEnvironment env, Executor exec, Weather weather, WorldServer world, boolean transition) {
if(!world.dimension.getType().weather)
throw new RunException("Welt %s hat kein Wetter", world.dimension.getNameString());
throw new RunException("Welt %s hat kein Wetter", world.dimension.getDisplay());
else if(world.isExterminated())
throw new RunException("Welt %s ist zerstört", world.dimension.getNameString());
throw new RunException("Welt %s ist zerstört", world.dimension.getDisplay());
world.setWeather(weather);
if(!transition)
world.resetWeather();
exec.log("Wetter in %s zu %s geändert", world.dimension.getNameString(), weather.getDisplay());
exec.log("Wetter in %s zu %s geändert", world.dimension.getDisplay(), weather.getDisplay());
}
}

View file

@ -23,7 +23,7 @@ public class CommandWorld extends Command {
for(Entity entity : entities) {
BlockPos pos = adjust(world, entity.getPosition());
entity.teleport(pos, world);
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), world.dimension.getNameString());
exec.log("%s nach %d, %d, %d in %s teleportiert", entity.getCommandName(), pos.getX(), pos.getY(), pos.getZ(), world.dimension.getDisplay());
}
return entities.size();
}

View file

@ -1346,7 +1346,7 @@ public class Player extends User implements Executor, IPlayer
if(this.edit == EditAction.SELECT && this.selectionDim != Integer.MIN_VALUE && (this.selPos1 != null || this.selPos2 != null)) {
Dimension dim = UniverseRegistry.getDimension(this.selectionDim);
if(dim != null) {
msg += "; Bereich " + dim.getNameString() + ": ";
msg += "; Bereich " + dim.getDisplay() + ": ";
msg += (this.selPos1 != null ? this.selPos1 : "*") + " -> " + (this.selPos2 != null ? this.selPos2 : "*");
if(this.selPos1 != null && this.selPos2 != null) {
msg += " = " + (1 + Math.max(this.selPos1.getX(), this.selPos2.getX()) - Math.min(this.selPos1.getX(), this.selPos2.getX())) +
@ -1556,11 +1556,12 @@ public class Player extends User implements Executor, IPlayer
info = null;
Alignment align = Alignment.getByName(tag.getString("Align"));
Dimension dimension = UniverseRegistry.getDimension(tag.getString("Dimension"));
String dim = dimension == null ? "???" : dimension.getNameString();
String dim = dimension == null ? "???" : dimension.getDisplay();
BlockPos pos = new BlockPos(tag.getDouble("PosX"), tag.getDouble("PosY"), tag.getDouble("PosZ"));
String type = EntityRegistry.getEntityName(tag.getString("id"));
int level = tag.getInt("XpLevel");
return new PlayerCharacter(name, info, align, dim, pos, type, level);
Dimension origin = UniverseRegistry.getDimension(tag.getString("OriginDim"));
return new PlayerCharacter(name, info, align, dim, pos, type, level, origin == null ? null : UniverseRegistry.getName(origin));
}
public void onConnect() {
@ -2428,7 +2429,7 @@ public class Player extends User implements Executor, IPlayer
Position pos = this.server.getRandomSpawnPosition(origin);
this.entity.teleport(pos);
this.teleportPos = this.deathPos = null;
this.sendPacket(new SPacketCharacterList(this.selected, this.selected, new PlayerCharacter(this.entity.getCustomNameTag(), this.entity.getDescription(), this.entity.getAlignment(), this.entity.worldObj.dimension.getNameString(), this.entity.getPosition(), EntityRegistry.getEntityName(EntityRegistry.getEntityString(this.entity)), this.entity.experienceLevel)));
this.sendPacket(new SPacketCharacterList(this.selected, this.selected, new PlayerCharacter(this.entity.getCustomNameTag(), this.entity.getDescription(), this.entity.getAlignment(), this.entity.worldObj.dimension.getDisplay(), this.entity.getPosition(), EntityRegistry.getEntityName(EntityRegistry.getEntityString(this.entity)), this.entity.experienceLevel, UniverseRegistry.getName(world.dimension))));
// if(this.local)
// this.server.setDone();
break;