This commit is contained in:
dfsek
2021-11-17 16:28:40 -07:00
parent 172006f2f6
commit 3737e3510d
46 changed files with 133 additions and 152 deletions

View File

@@ -28,6 +28,7 @@ import com.dfsek.terra.api.event.EventManager;
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.Injector;
import com.dfsek.terra.api.inject.impl.InjectorImpl;
import com.dfsek.terra.api.lang.Language;
import com.dfsek.terra.api.profiler.Profiler;
import com.dfsek.terra.api.registry.CheckedRegistry;
@@ -41,7 +42,6 @@ import com.dfsek.terra.config.GenericLoaders;
import com.dfsek.terra.config.PluginConfigImpl;
import com.dfsek.terra.config.lang.LangUtil;
import com.dfsek.terra.event.EventManagerImpl;
import com.dfsek.terra.api.inject.impl.InjectorImpl;
import com.dfsek.terra.profiler.ProfilerImpl;
import com.dfsek.terra.registry.CheckedRegistryImpl;
import com.dfsek.terra.registry.LockedRegistryImpl;

View File

@@ -1,12 +1,6 @@
package com.dfsek.terra;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.addon.annotations.Addon;
import com.dfsek.terra.api.addon.annotations.Author;
import com.dfsek.terra.api.addon.annotations.Version;
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
public class InternalAddon implements BaseAddon {

View File

@@ -27,6 +27,7 @@ public class PacksCommand implements CommandTemplate {
}
LangUtil.send("command.packs.main", sender);
registry.entries().forEach(entry -> LangUtil.send("command.packs.pack", sender, entry.getID(), entry.getAuthor(), entry.getVersion()));
registry.entries().forEach(
entry -> LangUtil.send("command.packs.pack", sender, entry.getID(), entry.getAuthor(), entry.getVersion()));
}
}

View File

@@ -1,7 +1,5 @@
package com.dfsek.terra.commands;
import com.dfsek.terra.api.Platform;
import net.jafama.FastMath;
import java.lang.reflect.Field;
@@ -14,6 +12,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.command.CommandManager;
import com.dfsek.terra.api.command.CommandTemplate;
import com.dfsek.terra.api.command.annotation.Argument;
@@ -35,8 +34,8 @@ import com.dfsek.terra.api.command.tab.TabCompleter;
import com.dfsek.terra.api.entity.CommandSender;
import com.dfsek.terra.api.entity.Player;
import com.dfsek.terra.api.inject.exception.InjectionException;
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
import com.dfsek.terra.api.inject.impl.InjectorImpl;
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
public class TerraCommandManager implements CommandManager {

View File

@@ -6,7 +6,6 @@ import java.util.LinkedHashMap;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.tectonic.LoaderRegistrar;

View File

@@ -13,8 +13,8 @@ import java.io.IOException;
import java.io.UncheckedIOException;
import java.time.Duration;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.util.Logger;
@SuppressWarnings("FieldMayBeFinal")

View File

@@ -3,10 +3,10 @@ package com.dfsek.terra.config.lang;
import java.io.File;
import java.io.IOException;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.entity.CommandSender;
import com.dfsek.terra.api.lang.Language;
import com.dfsek.terra.api.util.Logger;
public final class LangUtil {

View File

@@ -10,6 +10,7 @@ import java.util.Set;
import com.dfsek.terra.api.addon.TerraAddon;
@SuppressWarnings("FieldMayBeFinal")
public class ConfigPackAddonsTemplate implements ConfigTemplate {
@Value("addons")
@Default

View File

@@ -123,7 +123,8 @@ public class ConfigPackImpl implements ConfigPack {
selfLoader.load(addonsTemplate, configuration);
this.addons = addonsTemplate.getAddons();
platform.getEventManager().callEvent(new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration)));
platform.getEventManager().callEvent(
new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration)));
selfLoader.load(template, configuration);
@@ -173,7 +174,8 @@ public class ConfigPackImpl implements ConfigPack {
selfLoader.load(addonsTemplate, configuration);
this.addons = addonsTemplate.getAddons();
platform.getEventManager().callEvent(new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration)));
platform.getEventManager().callEvent(
new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration)));
selfLoader.load(template, configuration);
@@ -364,11 +366,13 @@ public class ConfigPackImpl implements ConfigPack {
private void checkDeadEntries(Platform platform) {
registryMap.forEach((clazz, pair) -> ((OpenRegistryImpl<?>) pair.getLeft()).getDeadEntries()
.forEach((id, value) -> platform.getDebugLogger()
.warning("Dead entry in '" +
ReflectionUtil.typeToString(
clazz) +
"' registry: '" +
id + "'")));
.warning(
"Dead entry in" +
" '" +
ReflectionUtil.typeToString(
clazz) +
"' registry: '" +
id + "'")));
}
@SuppressWarnings({ "unchecked", "rawtypes" })

View File

@@ -1,7 +1,5 @@
package com.dfsek.terra.event;
import com.dfsek.terra.api.addon.BaseAddon;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Type;
@@ -9,7 +7,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.event.events.Event;
import com.dfsek.terra.api.event.events.FailThroughEvent;
import com.dfsek.terra.api.event.functional.EventContext;

View File

@@ -12,7 +12,6 @@ import java.util.Map;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.event.events.Event;
import com.dfsek.terra.api.event.events.FailThroughEvent;
import com.dfsek.terra.api.event.events.PackEvent;

View File

@@ -25,9 +25,8 @@ import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
*/
public class OpenRegistryImpl<T> implements OpenRegistry<T> {
private static final Entry<?> NULL = new Entry<>(null);
private final Map<String, Entry<T>> objects;
private static final Pattern ID_PATTERN = Pattern.compile("^[a-zA-Z0-9_-]*$");
private final Map<String, Entry<T>> objects;
public OpenRegistryImpl() {
objects = new HashMap<>();
@@ -69,7 +68,9 @@ public class OpenRegistryImpl<T> implements OpenRegistry<T> {
public boolean register(String identifier, Entry<T> value) {
if(!ID_PATTERN.matcher(identifier).matches())
throw new IllegalArgumentException("Registry ID must only contain alphanumeric characters, hyphens, and underscores. \"" + identifier + "\" is not a valid ID.");
throw new IllegalArgumentException(
"Registry ID must only contain alphanumeric characters, hyphens, and underscores. \"" + identifier +
"\" is not a valid ID.");
boolean exists = objects.containsKey(identifier);
objects.put(identifier, value);
return exists;

View File

@@ -14,8 +14,8 @@ import com.dfsek.terra.addon.exception.AddonLoadException;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.inject.exception.InjectionException;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.api.inject.impl.InjectorImpl;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.registry.OpenRegistryImpl;

View File

@@ -1,16 +1,15 @@
package com.dfsek.terra.world;
import com.dfsek.terra.api.Platform;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import net.jafama.FastMath;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.util.math.Sampler;
import com.dfsek.terra.api.world.World;
public class SamplerCacheImpl implements com.dfsek.terra.api.world.generator.SamplerCache {

View File

@@ -1,40 +1,14 @@
package profiler;
import org.junit.jupiter.api.Test;
import com.dfsek.terra.api.profiler.Profiler;
import com.dfsek.terra.profiler.ProfilerImpl;
import org.junit.jupiter.api.Test;
public class ProfilerTest {
private static final Profiler PROFILER = new ProfilerImpl();
@Test
public void testProfiler() throws InterruptedException {
//PROFILER.start();
for(int i = 0; i < 100; i++) {
doThing();
}
for(int i = 0; i < 100; i++) {
doThirdOtherThing();
}
for(int i = 0; i < 100; i++) {
doOtherThing();
}
PROFILER.stop();
PROFILER.push("thing");
PROFILER.push("thing2");
PROFILER.start();
PROFILER.pop("thing2");
PROFILER.pop("thing");
PROFILER.push("thing4");
PROFILER.pop("thing4");
PROFILER.getTimings().forEach((id, timings) -> System.out.println(id + ": " + timings.toString()));
}
private static void doThing() throws InterruptedException {
PROFILER.push("thing");
Thread.sleep(1);
@@ -62,4 +36,30 @@ public class ProfilerTest {
Thread.sleep(2);
PROFILER.pop("thing4");
}
@Test
public void testProfiler() throws InterruptedException {
//PROFILER.start();
for(int i = 0; i < 100; i++) {
doThing();
}
for(int i = 0; i < 100; i++) {
doThirdOtherThing();
}
for(int i = 0; i < 100; i++) {
doOtherThing();
}
PROFILER.stop();
PROFILER.push("thing");
PROFILER.push("thing2");
PROFILER.start();
PROFILER.pop("thing2");
PROFILER.pop("thing");
PROFILER.push("thing4");
PROFILER.pop("thing4");
PROFILER.getTimings().forEach((id, timings) -> System.out.println(id + ": " + timings.toString()));
}
}

View File

@@ -1,14 +1,13 @@
package registry;
import org.junit.jupiter.api.Test;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.OpenRegistry;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.registry.CheckedRegistryImpl;
import com.dfsek.terra.registry.OpenRegistryImpl;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@@ -25,7 +24,7 @@ public class RegistryTest {
@Test
public void openRegistryChecked() {
OpenRegistry<String> test = new OpenRegistryImpl<>();
test.registerChecked("test", "bazinga");
try {
@@ -41,7 +40,7 @@ public class RegistryTest {
CheckedRegistry<String> test = new CheckedRegistryImpl<>(new OpenRegistryImpl<>());
test.register("test", "bazinga");
assertEquals(test.get("test"), "bazinga");
try {