FloodLightCalculation

public class FloodLightCalculation implements LightCalculation

Class FloodLightCalculation. Provides floodlightcalculation functionality for the Hytale server.

java.lang.Object > FloodLightCalculation

Field Summary

x

final int x

Field x.

z

final int z

Field z.

chunk

final WorldChunk chunk

Field chunk.

section

final BlockSection section

Field section.

chunkX

final int chunkX

Field chunkX.

chunkY

final int chunkY

Field chunkY.

chunkZ

final int chunkZ

Field chunkZ.

worldChunk

final WorldChunk worldChunk

Field worldChunk.

chunkLightTiming

final AtomicLong chunkLightTiming

Field chunkLightTiming.

fineLoggable

final boolean fineLoggable

Field fineLoggable.

accessor

final LocalCachedChunkAccessor accessor

Field accessor.

obj

final LocalCachedChunkAccessor obj

Field obj.

toSection

final BlockSection toSection

Field toSection.

fluidSection

final FluidSection fluidSection

Field fluidSection.

localLightResult

final CalculationResult localLightResult

Field localLightResult.

globalLightResult

final CalculationResult globalLightResult

Field globalLightResult.

chunkDiff

final long chunkDiff

Field chunkDiff.

start

final long start

Field start.

solidAir

final boolean solidAir

Field solidAir.

end

final long end

Field end.

diff

final long diff

Field diff.

globalLight

final ChunkLightDataBuilder globalLight

Field globalLight.

bitSetQueue

final BitSet bitSetQueue

Field bitSetQueue.

oldHeightChunk

final int oldHeightChunk

Field oldHeightChunk.

newHeightChunk

final int newHeightChunk

Field newHeightChunk.

from

final int from

Field from.

to

final int to

Field to.

handled

final boolean handled

Field handled.

world

final World world

Field world.

worldChunkTemp

final WorldChunk worldChunkTemp

Field worldChunkTemp.

sectionY

final int sectionY

Field sectionY.

light

final ChunkLightDataBuilder light

Field light.

column

final int column

Field column.

height

final short height

Field height.

changedColumns

final IntSet changedColumns

Field changedColumns.

x2

final int x2

Field x2.

z2

final int z2

Field z2.

skyLight

final byte skyLight

Field skyLight.

propagatedValue

final byte propagatedValue

Field propagatedValue.

nx

final int nx

Field nx.

nz

final int nz

Field nz.

neighbourColumn

final int neighbourColumn

Field neighbourColumn.

neighbourSkyLight

final byte neighbourSkyLight

Field neighbourSkyLight.

iterator

final IntIterator iterator

Field iterator.

column2

final int column2

Field column2.

skyLight2

final byte skyLight2

Field skyLight2.

toLight

final ChunkLightDataBuilder toLight

Field toLight.

blockIndex

final int blockIndex

Field blockIndex.

skyValue

final byte skyValue

Field skyValue.

blockId

final int blockId

Field blockId.

blockType

final BlockType blockType

Field blockType.

blockTypeLight

final ColorLight blockTypeLight

Field blockTypeLight.

fluidId

final int fluidId

Field fluidId.

fluid

final Fluid fluid

Field fluid.

fluidLight

final ColorLight fluidLight

Field fluidLight.

originY

final int originY

Field originY.

hasSky

final boolean hasSky

Field hasSky.

fromBlockType

final BlockType fromBlockType

Field fromBlockType.

fromOpacity

final Opacity fromOpacity

Field fromOpacity.

lightValue

final short lightValue

Field lightValue.

redLight

final byte redLight

Field redLight.

greenLight

final byte greenLight

Field greenLight.

blueLight

final byte blueLight

Field blueLight.

y

final int y

Field y.

ny

final int ny

Field ny.

neighbourBlock

final int neighbourBlock

Field neighbourBlock.

blockParts

final Vector3i[][] blockParts

Field blockParts.

partSections

final BlockSection[] partSections

Field partSections.

directions

final Vector3i[] directions

Field directions.

side

final Vector3i side

Field side.

fromSection

final BlockSection fromSection

Field fromSection.

neighbourChunk

final WorldChunk neighbourChunk

Field neighbourChunk.

fromSection2

final BlockSection fromSection2

Field fromSection2.

fromSectionsSides

final BlockSection[] fromSectionsSides

Field fromSectionsSides.

fromLight

final ChunkLightData fromLight

Field fromLight.

fromBlockIndex

final int fromBlockIndex

Field fromBlockIndex.

toBlockIndex

final int toBlockIndex

Field toBlockIndex.

fromSectionsEdges

final BlockSection[] fromSectionsEdges

Field fromSectionsEdges.

fromSectionsCorners

final BlockSection[] fromSectionsCorners

Field fromSectionsCorners.

toBlockType

final BlockType toBlockType

Field toBlockType.

toOpacity

final Opacity toOpacity

Field toOpacity.

oldLightValue

final short oldLightValue

Field oldLightValue.

Method Detail

FloodLightCalculation

public public FloodLightCalculation (final ChunkLightingManager chunkLightingManager)

Method FloodLightCalculation.

Parameters:
final ChunkLightingManager chunkLightingManager

init

public void init (@Nonnull final WorldChunk chunk)

Method init.

Parameters:
@Nonnull final WorldChunk chunk

initChunk

private void initChunk (final int x, final int z)

Method initChunk.

Parameters:
final int x
final int z

initNeighbours

private void initNeighbours (final int x, final int z)

Method initNeighbours.

Parameters:
final int x
final int z

initSection

private void initSection (@Nonnull final WorldChunk chunk, final int x, final int y, final int z)

Method initSection.

Parameters:
@Nonnull final WorldChunk chunk
final int x
final int y
final int z

Vector3i

public new Vector3i (x, y, z)

Method Vector3i.

Parameters:
x x
y y
z z

initNeighbourSections

private void initNeighbourSections (@Nonnull final LocalCachedChunkAccessor accessor, final int x, final int y, final int z)

Method initNeighbourSections.

Parameters:
@Nonnull final LocalCachedChunkAccessor accessor
final int x
final int y
final int z

calculateLight

public CalculationResult calculateLight (@Nonnull final Vector3i chunkPosition)

Method calculateLight.

Parameters:
@Nonnull final Vector3i chunkPosition

updateLocalLight

public CalculationResult updateLocalLight (final LocalCachedChunkAccessor accessor, @Nonnull final WorldChunk worldChunk, final int chunkX, final int chunkY, final int chunkZ, @Nonnull final BlockSection toSection, @Nonnull final FluidSection fluidSection, @Nonnull final AtomicLong chunkLightTiming, final boolean fineLoggable)

Method updateLocalLight.

Parameters:
final LocalCachedChunkAccessor accessor
@Nonnull final WorldChunk worldChunk
final int chunkX
final int chunkY
final int chunkZ
@Nonnull final BlockSection toSection
@Nonnull final FluidSection fluidSection
@Nonnull final AtomicLong chunkLightTiming
final boolean fineLoggable

Section

public Chunk Section (local)

Method Section.

Parameters:
local local

updateGlobalLight

public CalculationResult updateGlobalLight (@Nonnull final LocalCachedChunkAccessor accessor, @Nonnull final WorldChunk worldChunk, final int chunkX, final int chunkY, final int chunkZ, @Nonnull final BlockSection toSection, @Nonnull final AtomicLong chunkLightTiming, final boolean fineLoggable)

Method updateGlobalLight.

Parameters:
@Nonnull final LocalCachedChunkAccessor accessor
@Nonnull final WorldChunk worldChunk
final int chunkX
final int chunkY
final int chunkZ
@Nonnull final BlockSection toSection
@Nonnull final AtomicLong chunkLightTiming
final boolean fineLoggable

ChunkLightDataBuilder

public new ChunkLightDataBuilder (toSection.getLocalLight()

Method ChunkLightDataBuilder.

Parameters:
toSection.getLocalLight( toSection.getLocalLight(

invalidateLightAtBlock

public boolean invalidateLightAtBlock (@Nonnull final WorldChunk worldChunk, final int blockX, final int blockY, final int blockZ, @Nonnull final BlockType blockType, final int oldHeight, final int newHeight)

Method invalidateLightAtBlock.

Parameters:
@Nonnull final WorldChunk worldChunk
final int blockX
final int blockY
final int blockZ
@Nonnull final BlockType blockType
final int oldHeight
final int newHeight

invalidateLightInChunkSections

public boolean invalidateLightInChunkSections (@Nonnull final WorldChunk worldChunk, final int sectionIndexFrom, final int sectionIndexTo)

Method invalidateLightInChunkSections.

Parameters:
@Nonnull final WorldChunk worldChunk
final int sectionIndexFrom
final int sectionIndexTo

floodEmptyChunkSection

private ChunkLightDataBuilder floodEmptyChunkSection (@Nonnull final WorldChunk worldChunk, final short changeCounter, final int chunkY)

Method floodEmptyChunkSection.

Parameters:
@Nonnull final WorldChunk worldChunk
final short changeCounter
final int chunkY

floodChunkSection

private ChunkLightDataBuilder floodChunkSection (@Nonnull final WorldChunk worldChunk, @Nonnull final BlockSection toSection, @Nonnull final FluidSection fluidSection, final int chunkY)

Method floodChunkSection.

Parameters:
@Nonnull final WorldChunk worldChunk
@Nonnull final BlockSection toSection
@Nonnull final FluidSection fluidSection
final int chunkY

if

public else if (fluidLight != null)

Method if.

Parameters:
fluidLight != null

getSkyValue

protected byte getSkyValue (final WorldChunk worldChunk, final int chunkY, final int blockX, final int blockY, final int blockZ, final int sectionY, final int height)

Method getSkyValue.

Parameters:
final WorldChunk worldChunk
final int chunkY
final int blockX
final int blockY
final int blockZ
final int sectionY
final int height

propagateLight

private void propagateLight (@Nonnull final BitSet bitSetQueue, @Nonnull final BlockSection section, @Nonnull final ChunkLightDataBuilder light)

Method propagateLight.

Parameters:
@Nonnull final BitSet bitSetQueue
@Nonnull final BlockSection section
@Nonnull final ChunkLightDataBuilder light

testNeighboursForLocalLight

public boolean testNeighboursForLocalLight (@Nonnull final LocalCachedChunkAccessor accessor, @Nonnull final WorldChunk worldChunk, final int chunkX, final int chunkY, final int chunkZ)

Method testNeighboursForLocalLight.

Parameters:
@Nonnull final LocalCachedChunkAccessor accessor
@Nonnull final WorldChunk worldChunk
final int chunkX
final int chunkY
final int chunkZ

propagateSides

public void propagateSides (@Nonnull final BlockSection toSection, @Nonnull final ChunkLightDataBuilder globalLight, @Nonnull final BitSet bitSetQueue)

Method propagateSides.

Parameters:
@Nonnull final BlockSection toSection
@Nonnull final ChunkLightDataBuilder globalLight
@Nonnull final BitSet bitSetQueue

propagateSide

private void propagateSide (@Nonnull final BitSet bitSetQueue, @Nullable final BlockSection fromSection, @Nonnull final BlockSection toSection, @Nonnull final ChunkLightDataBuilder toLight, @Nonnull final IntBinaryOperator fromIndex, @Nonnull final IntBinaryOperator toIndex)

Method propagateSide.

Parameters:
@Nonnull final BitSet bitSetQueue
@Nullable final BlockSection fromSection
@Nonnull final BlockSection toSection
@Nonnull final ChunkLightDataBuilder toLight
@Nonnull final IntBinaryOperator fromIndex
@Nonnull final IntBinaryOperator toIndex

propagateEdges

public void propagateEdges (@Nonnull final BlockSection toSection, @Nonnull final ChunkLightDataBuilder globalLight, @Nonnull final BitSet bitSetQueue)

Method propagateEdges.

Parameters:
@Nonnull final BlockSection toSection
@Nonnull final ChunkLightDataBuilder globalLight
@Nonnull final BitSet bitSetQueue

propagateEdge

private void propagateEdge (@Nonnull final BitSet bitSetQueue, @Nullable final BlockSection fromSection, @Nonnull final BlockSection toSection, @Nonnull final ChunkLightDataBuilder toLight, @Nonnull final Int2IntFunction fromIndex, @Nonnull final Int2IntFunction toIndex)

Method propagateEdge.

Parameters:
@Nonnull final BitSet bitSetQueue
@Nullable final BlockSection fromSection
@Nonnull final BlockSection toSection
@Nonnull final ChunkLightDataBuilder toLight
@Nonnull final Int2IntFunction fromIndex
@Nonnull final Int2IntFunction toIndex

propagateCorners

public void propagateCorners (@Nonnull final BlockSection toSection, @Nonnull final ChunkLightDataBuilder globalLight, @Nonnull final BitSet bitSetQueue)

Method propagateCorners.

Parameters:
@Nonnull final BlockSection toSection
@Nonnull final ChunkLightDataBuilder globalLight
@Nonnull final BitSet bitSetQueue

propagateCorner

private void propagateCorner (@Nonnull final BitSet bitSetQueue, @Nullable final BlockSection fromSection, @Nonnull final BlockSection toSection, @Nonnull final ChunkLightDataBuilder toLight, final int fromBlockIndex, final int toBlockIndex)

Method propagateCorner.

Parameters:
@Nonnull final BitSet bitSetQueue
@Nullable final BlockSection fromSection
@Nonnull final BlockSection toSection
@Nonnull final ChunkLightDataBuilder toLight
final int fromBlockIndex
final int toBlockIndex