Class LightRenderer
java.lang.Object
foundry.veil.api.client.render.light.renderer.LightRenderer
- All Implemented Interfaces:
AutoCloseable
,org.lwjgl.system.NativeResource
Renders all lights in a scene.
Lights can be added with addLight(Light)
, and subsequently removed with
removeLight(Light)
. Lights are automatically updated the next time render()
is called if Light.isDirty()
is true
.
There is no way to retrieve a light, so care should be taken to keep track of what lights have been added to the scene and when they should be removed.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addDebugInfo
(Consumer<String> consumer) void
Adds a light to the renderer.boolean
Applies the shader set toVeilRenderSystem
.void
Disables ambient occlusion.void
Enables ambient occlusion.void
free()
getLights
(LightTypeRegistry.LightType<? extends T> type) Retrieves all lights of the specified type.boolean
<T extends Light>
voidremoveLight
(T light) Removes the specified light from the renderer.boolean
render()
Draws the lights to the screen.void
setup
(CullFrustum frustum) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.lwjgl.system.NativeResource
close
-
Constructor Details
-
LightRenderer
public LightRenderer()Creates a new light renderer.
-
-
Method Details
-
applyShader
public boolean applyShader()Applies the shader set toVeilRenderSystem
. -
setup
-
render
@Internal public boolean render()Draws the lights to the screen.- Returns:
- If any lights were actually rendered
-
addLight
Adds a light to the renderer.- Parameters:
light
- The light to add
-
removeLight
Removes the specified light from the renderer.- Parameters:
light
- The light to remove
-
getLights
Retrieves all lights of the specified type.- Parameters:
type
- The type of lights to get- Returns:
- A list of lights for the specified type in the scene
-
enableAmbientOcclusion
public void enableAmbientOcclusion()Enables ambient occlusion. -
disableAmbientOcclusion
public void disableAmbientOcclusion()Disables ambient occlusion. -
isAmbientOcclusionEnabled
public boolean isAmbientOcclusionEnabled()- Returns:
- Whether chunks can have ambient occlusion
-
free
public void free()- Specified by:
free
in interfaceorg.lwjgl.system.NativeResource
-
addDebugInfo
-