Improve DhApi event handling names and organization

This commit is contained in:
James Seibel
2022-07-14 07:48:46 -05:00
parent 889e983cc5
commit b1c6ff9588
9 changed files with 91 additions and 62 deletions
@@ -1,6 +1,6 @@
package com.seibel.lod.core.api.external.events;
import com.seibel.lod.core.api.external.events.interfaces.IDhApiEvent;
import com.seibel.lod.core.api.external.events.interfaces.IDhApiEventHandler;
import com.seibel.lod.core.api.external.shared.objects.DhApiResult;
/**
@@ -17,7 +17,7 @@ public class DhApiEventRegister
* If multiple of the same eventHandler are added DhApiResult will return
* the name of the already added handler and success = false.
*/
public static DhApiResult on(IDhApiEvent eventHandler)
public static DhApiResult on(IDhApiEventHandler eventHandler)
{
throw new UnsupportedOperationException();
}
@@ -27,7 +27,7 @@ public class DhApiEventRegister
* If no eventHandler of the given class has been registered the result will return
* success = false.
*/
public static DhApiResult off(IDhApiEvent eventHandler)
public static DhApiResult off(IDhApiEventHandler eventHandler)
{
throw new UnsupportedOperationException();
}
@@ -1,22 +0,0 @@
package com.seibel.lod.core.api.external.events.interfaces;
import com.seibel.lod.core.api.external.shared.interfaces.IDhApiLevelWrapper;
import com.seibel.lod.core.api.external.shared.objects.math.DhApiMat4f;
/**
* @author James Seibel
* @version 2022-7-13
*/
public interface IDhApiAfterRenderEvent extends IDhApiEvent
{
/**
* Called after Distant Horizons' rendering pipeline finishes.
*
* @param renderingEnabled Passes in false if DH rendering was disabled or canceled for this frame.
*/
void afterRender(IDhApiLevelWrapper levelWrapper,
DhApiMat4f mcModelViewMatrix, DhApiMat4f mcProjectionMatrix, // the matrices received from Minecraft
DhApiMat4f dhModelViewMatrix, DhApiMat4f dhProjectionMatrix, // the matrices used by Distant Horizons
float partialTicks, boolean renderingEnabled);
}
@@ -0,0 +1,16 @@
package com.seibel.lod.core.api.external.events.interfaces;
import com.seibel.lod.core.api.external.events.objects.DhApiAfterRenderEvent;
/**
* @author James Seibel
* @version 2022-7-13
*/
public interface IDhApiAfterRenderEventHandler extends IDhApiEventHandler<DhApiAfterRenderEvent>
{
/**
* Called after Distant Horizons' rendering pipeline finishes.
*/
void afterRender(DhApiAfterRenderEvent event);
}
@@ -1,24 +0,0 @@
package com.seibel.lod.core.api.external.events.interfaces;
import com.seibel.lod.core.api.external.shared.interfaces.IDhApiLevelWrapper;
import com.seibel.lod.core.api.external.shared.objects.math.DhApiMat4f;
/**
* @author James Seibel
* @version 2022-7-13
*/
public interface IDhApiBeforeRenderEvent extends IDhApiEvent
{
/**
* Called before Distant Horizons starts rendering. <Br>
* If this method returns false; DH's rendering will be skipped for that frame. <Br> <Br>
*
* The Matrices received are not passed on to the renderer and can be safely
* edited without modifying Minecraft or Distant Horizons' rendering.
*/
boolean beforeRender(IDhApiLevelWrapper levelWrapper,
DhApiMat4f mcModelViewMatrix, DhApiMat4f mcProjectionMatrix, // the matrices received from Minecraft
DhApiMat4f dhModelViewMatrix, DhApiMat4f dhProjectionMatrix, // the matrices used by Distant Horizons
float partialTicks);
}
@@ -0,0 +1,20 @@
package com.seibel.lod.core.api.external.events.interfaces;
import com.seibel.lod.core.api.external.events.objects.DhApiRenderEvent;
/**
* @author James Seibel
* @version 2022-7-14
*/
public interface IDhApiBeforeRenderEventHandler extends IDhApiEventHandler<DhApiRenderEvent>
{
/**
* Called before Distant Horizons starts rendering. <Br>
* If this method returns false; DH's rendering will be skipped for that frame. <Br> <Br>
*
* The Matrices received are not passed on to the renderer and can be safely
* edited without modifying Minecraft or Distant Horizons' rendering.
*/
boolean beforeRender(DhApiRenderEvent event);
}
@@ -1,13 +0,0 @@
package com.seibel.lod.core.api.external.events.interfaces;
/**
* All Api event handlers should implement this, so
* they can be more easily organized.
*
* @author James Seibel
* @version 2022-7-13
*/
public interface IDhApiEvent
{
}
@@ -0,0 +1,15 @@
package com.seibel.lod.core.api.external.events.interfaces;
/**
* All Api event handlers should implement this.
*
* @param <InputType> This is the datatype that should be passed into the
* event handler's method.
*
* @author James Seibel
* @version 2022-7-13
*/
public interface IDhApiEventHandler<InputType>
{
}
@@ -0,0 +1,14 @@
package com.seibel.lod.core.api.external.events.objects;
import com.seibel.lod.core.api.external.shared.interfaces.IDhApiLevelWrapper;
import com.seibel.lod.core.api.external.shared.objects.math.DhApiMat4f;
/**
* @author James Seibel
* @version 2022-7-14
*/
public class DhApiAfterRenderEvent extends DhApiRenderEvent
{
/** False if DH rendering was disabled or canceled for this frame. */
public boolean renderingEnabled;
}
@@ -0,0 +1,23 @@
package com.seibel.lod.core.api.external.events.objects;
import com.seibel.lod.core.api.external.shared.interfaces.IDhApiLevelWrapper;
import com.seibel.lod.core.api.external.shared.objects.math.DhApiMat4f;
/**
* @author James Seibel
* @version 2022-7-14
*/
public class DhApiRenderEvent
{
public IDhApiLevelWrapper levelWrapper;
// the matrices received from Minecraft
public DhApiMat4f mcModelViewMatrix;
public DhApiMat4f mcProjectionMatrix;
// the matrices used by Distant Horizons
public DhApiMat4f dhModelViewMatrix;
public DhApiMat4f dhProjectionMatrix;
public float partialTicks;
}