Fix the level API events
This commit is contained in:
+13
-15
@@ -20,10 +20,8 @@
|
||||
package com.seibel.lod.api.items.objects.wrappers;
|
||||
|
||||
import com.seibel.lod.api.items.enums.worldGeneration.EDhApiLevelType;
|
||||
import com.seibel.lod.api.items.interfaces.IDhApiUnsafeWrapper;
|
||||
import com.seibel.lod.api.items.interfaces.world.IDhApiDimensionTypeWrapper;
|
||||
import com.seibel.lod.api.items.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.interfaces.wrappers.world.ICoreDhApiLevelWrapper;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.IClientLevelWrapper;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
@@ -33,32 +31,32 @@ import com.seibel.lod.core.wrapperInterfaces.world.IServerLevelWrapper;
|
||||
* Can be either a Server or Client level.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-8
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public class DhApiLevelWrapper implements IDhApiLevelWrapper
|
||||
{
|
||||
private final ILevelWrapper levelWrapper;
|
||||
private final IDimensionTypeWrapper dimensionTypeWrapper;
|
||||
private final ILevelWrapper coreLevelWrapper;
|
||||
private final IDimensionTypeWrapper coreDimensionTypeWrapper;
|
||||
|
||||
|
||||
public DhApiLevelWrapper(ILevelWrapper newLevelWrapper)
|
||||
{
|
||||
this.levelWrapper = newLevelWrapper;
|
||||
this.dimensionTypeWrapper = this.levelWrapper.getDimensionType();
|
||||
this.coreLevelWrapper = newLevelWrapper;
|
||||
this.coreDimensionTypeWrapper = this.coreLevelWrapper.getDimensionType();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IDhApiDimensionTypeWrapper getDimensionType() { return new DhApiDimensionTypeWrapper(this.dimensionTypeWrapper); }
|
||||
public IDhApiDimensionTypeWrapper getDimensionType() { return new DhApiDimensionTypeWrapper(this.coreDimensionTypeWrapper); }
|
||||
|
||||
@Override
|
||||
public EDhApiLevelType getLevelType()
|
||||
{
|
||||
if (this.levelWrapper.getClass().isAssignableFrom(IClientLevelWrapper.class))
|
||||
if (this.coreLevelWrapper.getClass().isAssignableFrom(IClientLevelWrapper.class))
|
||||
{
|
||||
return EDhApiLevelType.CLIENT_LEVEL;
|
||||
}
|
||||
else if (this.levelWrapper.getClass().isAssignableFrom(IServerLevelWrapper.class))
|
||||
else if (this.coreLevelWrapper.getClass().isAssignableFrom(IServerLevelWrapper.class))
|
||||
{
|
||||
return EDhApiLevelType.CLIENT_LEVEL;
|
||||
}
|
||||
@@ -70,19 +68,19 @@ public class DhApiLevelWrapper implements IDhApiLevelWrapper
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCeiling() { return this.levelWrapper.hasCeiling(); }
|
||||
public boolean hasCeiling() { return this.coreLevelWrapper.hasCeiling(); }
|
||||
|
||||
@Override
|
||||
public boolean hasSkyLight() { return this.levelWrapper.hasSkyLight(); }
|
||||
public boolean hasSkyLight() { return this.coreLevelWrapper.hasSkyLight(); }
|
||||
|
||||
@Override
|
||||
public int getHeight() { return this.levelWrapper.getHeight(); }
|
||||
public int getHeight() { return this.coreLevelWrapper.getHeight(); }
|
||||
|
||||
@Override
|
||||
public int getMinHeight() { return this.levelWrapper.getMinHeight(); }
|
||||
public int getMinHeight() { return this.coreLevelWrapper.getMinHeight(); }
|
||||
|
||||
|
||||
@Override
|
||||
public Object getWrappedMcObject_UNSAFE() { return this.levelWrapper.unwrapLevel(); }
|
||||
public Object getWrappedMcObject_UNSAFE() { return this.coreLevelWrapper.unwrapLevel(); }
|
||||
|
||||
}
|
||||
|
||||
+7
-5
@@ -1,11 +1,14 @@
|
||||
package com.seibel.lod.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.lod.api.items.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.lod.api.items.objects.wrappers.DhApiLevelWrapper;
|
||||
import com.seibel.lod.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.objects.events.abstractEvents.CoreDhApiLevelLoadEvent;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2022-9-6
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public abstract class DhApiLevelLoadEvent
|
||||
extends CoreDhApiLevelLoadEvent
|
||||
@@ -22,7 +25,7 @@ public abstract class DhApiLevelLoadEvent
|
||||
@Override
|
||||
public final boolean fireEvent(CoreEventParam input)
|
||||
{
|
||||
onLevelLoad(new EventParam());
|
||||
onLevelLoad(new EventParam(input.levelWrapper));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -37,11 +40,10 @@ public abstract class DhApiLevelLoadEvent
|
||||
public static class EventParam
|
||||
{
|
||||
/** The newly loaded level. */
|
||||
//public final IDhApiLevelWrapper levelWrapper;
|
||||
public final IDhApiLevelWrapper levelWrapper;
|
||||
|
||||
|
||||
// TODO
|
||||
//public EventParam(ILevelWrapper newLevelWrapper) { this.levelWrapper = newLevelWrapper; }
|
||||
public EventParam(ILevelWrapper newLevelWrapper) { this.levelWrapper = new DhApiLevelWrapper(newLevelWrapper); }
|
||||
}
|
||||
|
||||
}
|
||||
+9
-6
@@ -1,11 +1,14 @@
|
||||
package com.seibel.lod.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.lod.api.items.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.lod.api.items.objects.wrappers.DhApiLevelWrapper;
|
||||
import com.seibel.lod.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.objects.events.abstractEvents.CoreDhApiLevelSaveEvent;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2022-9-6
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public abstract class DhApiLevelSaveEvent
|
||||
extends CoreDhApiLevelSaveEvent
|
||||
@@ -22,7 +25,7 @@ public abstract class DhApiLevelSaveEvent
|
||||
@Override
|
||||
public final boolean fireEvent(CoreDhApiLevelSaveEvent.CoreEventParam input)
|
||||
{
|
||||
onLevelSave(new EventParam());
|
||||
onLevelSave(new EventParam(input.levelWrapper));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -36,11 +39,11 @@ public abstract class DhApiLevelSaveEvent
|
||||
|
||||
public static class EventParam
|
||||
{
|
||||
/** The newly loaded level. */
|
||||
//public final IDhApiLevelWrapper levelWrapper;
|
||||
/** The saved level. */
|
||||
public final IDhApiLevelWrapper levelWrapper;
|
||||
|
||||
// TODO
|
||||
//public EventParam(IDhApiLevelWrapper newLevelWrapper) { this.levelWrapper = newLevelWrapper; }
|
||||
|
||||
public EventParam(ILevelWrapper newLevelWrapper) { this.levelWrapper = new DhApiLevelWrapper(newLevelWrapper); }
|
||||
}
|
||||
|
||||
}
|
||||
+7
-5
@@ -1,11 +1,14 @@
|
||||
package com.seibel.lod.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.lod.api.items.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.lod.api.items.objects.wrappers.DhApiLevelWrapper;
|
||||
import com.seibel.lod.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.objects.events.abstractEvents.CoreDhApiLevelUnloadEvent;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2022-9-6
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public abstract class DhApiLevelUnloadEvent
|
||||
extends CoreDhApiLevelUnloadEvent
|
||||
@@ -22,7 +25,7 @@ public abstract class DhApiLevelUnloadEvent
|
||||
@Override
|
||||
public final boolean fireEvent(CoreDhApiLevelUnloadEvent.CoreEventParam input)
|
||||
{
|
||||
onLevelUnload(new EventParam());
|
||||
onLevelUnload(new EventParam(input.levelWrapper));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -37,11 +40,10 @@ public abstract class DhApiLevelUnloadEvent
|
||||
public static class EventParam
|
||||
{
|
||||
/** The recently unloaded level. */
|
||||
// public final IDhApiLevelWrapper levelWrapper;
|
||||
public final IDhApiLevelWrapper levelWrapper;
|
||||
|
||||
|
||||
// TODO
|
||||
// public EventParam(IDhApiLevelWrapper newLevelWrapper) { this.levelWrapper = newLevelWrapper; }
|
||||
public EventParam(ILevelWrapper newLevelWrapper) { this.levelWrapper = new DhApiLevelWrapper(newLevelWrapper); }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,11 +21,14 @@ package com.seibel.lod.core.api.internal.a7;
|
||||
|
||||
import com.seibel.lod.core.a7.level.IClientLevel;
|
||||
import com.seibel.lod.core.a7.world.*;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.objects.events.abstractEvents.*;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.objects.events.sharedParameterObjects.CoreDhApiRenderParam;
|
||||
import com.seibel.lod.core.api.external.coreImplementations.objects.wrappers.CoreDhApiLevelWrapper;
|
||||
import com.seibel.lod.core.config.Config;
|
||||
import com.seibel.lod.core.ModInfo;
|
||||
import com.seibel.lod.core.enums.rendering.EDebugMode;
|
||||
import com.seibel.lod.core.enums.rendering.ERendererMode;
|
||||
import com.seibel.lod.core.handlers.dependencyInjection.DhApiEventInjector;
|
||||
import com.seibel.lod.core.handlers.dependencyInjection.SingletonInjector;
|
||||
import com.seibel.lod.core.logging.ConfigBasedLogger;
|
||||
import com.seibel.lod.core.logging.ConfigBasedSpamLogger;
|
||||
@@ -52,7 +55,7 @@ import java.util.concurrent.TimeUnit;
|
||||
* Specifically for the client.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-8-23
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public class ClientApi
|
||||
{
|
||||
@@ -145,7 +148,7 @@ public class ClientApi
|
||||
//TODO: Implement
|
||||
|
||||
// TODO: potentially add a list of chunks that were updated during the save
|
||||
// DhApiEventInjector.INSTANCE.fireAllEvents(DhApiLevelSaveEvent.class, new DhApiLevelSaveEvent.EventParam(new DhApiLevelWrapper(level)));
|
||||
DhApiEventInjector.INSTANCE.fireAllEvents(CoreDhApiLevelSaveEvent.class, new CoreDhApiLevelSaveEvent.CoreEventParam(level));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +159,7 @@ public class ClientApi
|
||||
if (SharedApi.currentWorld != null)
|
||||
{
|
||||
SharedApi.currentWorld.unloadLevel(level);
|
||||
// DhApiEventInjector.INSTANCE.fireAllEvents(DhApiLevelUnloadEvent.class, new DhApiLevelUnloadEvent.EventParam(new DhApiLevelWrapper(level)));
|
||||
DhApiEventInjector.INSTANCE.fireAllEvents(CoreDhApiLevelUnloadEvent.class, new CoreDhApiLevelUnloadEvent.CoreEventParam(level));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,7 +170,7 @@ public class ClientApi
|
||||
if (SharedApi.currentWorld != null)
|
||||
{
|
||||
SharedApi.currentWorld.getOrLoadLevel(level);
|
||||
// DhApiEventInjector.INSTANCE.fireAllEvents(DhApiLevelLoadEvent.class, new DhApiLevelLoadEvent.EventParam(new DhApiLevelWrapper(level)));
|
||||
DhApiEventInjector.INSTANCE.fireAllEvents(CoreDhApiLevelLoadEvent.class, new CoreDhApiLevelLoadEvent.CoreEventParam(level));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,12 +263,11 @@ public class ClientApi
|
||||
RenderUtil.createLodProjectionMatrix(mcProjectionMatrix, partialTicks),
|
||||
RenderUtil.createLodModelViewMatrix(mcModelViewMatrix), partialTicks);
|
||||
|
||||
// boolean renderingCanceled = DhApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeRenderEvent.class, new DhApiBeforeRenderEvent.EventParam(renderEventParam));
|
||||
|
||||
if (!rendererDisabledBecauseOfExceptions) // && !renderingCanceled)
|
||||
boolean renderingCanceled = DhApiEventInjector.INSTANCE.fireAllEvents(CoreDhApiBeforeRenderEvent.class, new CoreDhApiBeforeRenderEvent.CoreEventParam(renderEventParam));
|
||||
if (!rendererDisabledBecauseOfExceptions && !renderingCanceled)
|
||||
{
|
||||
level.render(mcModelViewMatrix, mcProjectionMatrix, partialTicks, profiler);
|
||||
// DhApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterRenderEvent.class, new DhApiAfterRenderEvent.EventParam(renderEventParam));
|
||||
DhApiEventInjector.INSTANCE.fireAllEvents(CoreDhApiAfterRenderEvent.class, new CoreDhApiAfterRenderEvent.CoreEventParam(renderEventParam));
|
||||
}
|
||||
}
|
||||
else if (Config.Client.Advanced.Debugging.rendererMode.get() == ERendererMode.DEBUG)
|
||||
|
||||
+2
-1
@@ -20,12 +20,13 @@
|
||||
package com.seibel.lod.core.api.external.coreImplementations.interfaces.wrappers.world;
|
||||
|
||||
import com.seibel.lod.core.api.external.coreImplementations.interfaces.wrappers.ICoreDhApiUnsafeWrapper;
|
||||
import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
|
||||
/**
|
||||
* Can be either a Server or Client level.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-7
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public interface ICoreDhApiLevelWrapper extends ICoreDhApiUnsafeWrapper
|
||||
{
|
||||
|
||||
@@ -32,7 +32,7 @@ import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper;
|
||||
* Can be either a Server world or a Client world.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 3-5-2022
|
||||
* @version 2022-9-10
|
||||
*/
|
||||
public interface ILevelWrapper extends IBindable
|
||||
{
|
||||
@@ -48,12 +48,9 @@ public interface ILevelWrapper extends IBindable
|
||||
|
||||
int getHeight();
|
||||
|
||||
default short getMinHeight()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
default short getMinHeight() { return 0; }
|
||||
|
||||
default IChunkWrapper tryGetChunk(DHChunkPos pos) {return null;}
|
||||
default IChunkWrapper tryGetChunk(DHChunkPos pos) { return null; }
|
||||
|
||||
boolean hasChunkLoaded(int chunkX, int chunkZ);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user