Mostly mapped lighting (#290)

This commit is contained in:
Bartosz Skrzypczak 2018-12-19 22:20:55 +01:00 committed by Adrian Siekierka
parent f4ec5b2b56
commit a7b7fe0152
24 changed files with 405 additions and 22 deletions

View File

@ -1,2 +0,0 @@
CLASS cep
METHOD h queueLightCheck (J)V

View File

@ -1,4 +0,0 @@
CLASS ces
CLASS ces$a
METHOD b getLightLevel (Let;)I
METHOD b getLightLevel (Let;)I

View File

@ -1,2 +0,0 @@
CLASS cew
METHOD h queueLightCheck (J)V

View File

@ -9,7 +9,9 @@ CLASS dbd net/minecraft/client/world/ClientChunkManager
ARG 2 z
ARG 3 status
ARG 4 require
METHOD a onLightUpdate (Lbca;III)V
METHOD a tick (Ljava/util/function/BooleanSupplier;)V
METHOD f getStatus ()Ljava/lang/String;
METHOD g getChunkGenerator ()Lbrb;
METHOD i getLightingProvider ()Lceu;
METHOD j getWorldAsView ()Lbbb;

View File

@ -8,6 +8,7 @@ CLASS up net/minecraft/server/world/ServerChunkManager
FIELD l maxWatchDistance I
FIELD n spawnMonsters Z
FIELD o spawnAnimals Z
METHOD a getLightingProvider ()Luu;
METHOD a getChunkSync (IILbrf;Z)Lbra;
ARG 1 x
ARG 2 z
@ -15,6 +16,7 @@ CLASS up net/minecraft/server/world/ServerChunkManager
ARG 4 require
METHOD a getWatchDistance (Lbbd;II)I
METHOD a getWatchDistance (Lbbd;Lagv;)I
METHOD a onLightUpdate (Lbca;III)V
METHOD a markForUpdate (Let;)V
METHOD a tick (Ljava/util/function/BooleanSupplier;)V
METHOD a addPlayer (Lus;)V
@ -30,6 +32,7 @@ CLASS up net/minecraft/server/world/ServerChunkManager
METHOD b applyViewDistance (I)V
METHOD b get (II)Lbbb;
ARG 1 chunkX
ARG 2 chunkZ
METHOD b getSqDistance (Lbbd;Lagv;)D
METHOD b removePlayer (Lus;)V
METHOD c getChunkAsync (IILbrf;Z)Ljava/util/concurrent/CompletableFuture;
@ -44,5 +47,6 @@ CLASS up net/minecraft/server/world/ServerChunkManager
METHOD g getChunkGenerator ()Lbrb;
METHOD h getLoadedChunkCount ()I
METHOD i getLightingProvider ()Lceu;
METHOD j getWorldAsView ()Lbbb;
METHOD k getRemainingWatchDistance ()I
METHOD m doMobSpawning ()V

View File

@ -1,2 +1,12 @@
CLASS uu net/minecraft/server/world/chunk/light/ServerLightingProvider
METHOD a queueLightCheck (Let;)V
METHOD a scheduleChunkLightUpdate (IIIZ)V
ARG 1 chunkX
ARG 2 chunkY
ARG 3 chunkZ
ARG 4 isEmpty
METHOD a doLightUpdates (IZZ)I
ARG 1 maxUpdateCount
METHOD a enqueueLightUpdate (Let;)V
ARG 1 pos
METHOD a (Let;I)V
ARG 1 pos

View File

@ -0,0 +1,80 @@
CLASS cep net/minecraft/sortme/LevelIndexedProcessor
FIELD a maxLevelCount I
FIELD b toProcess [Lit/unimi/dsi/fastutil/longs/LongLinkedOpenHashSet;
FIELD c levelMap Lit/unimi/dsi/fastutil/longs/Long2ByteFunction;
FIELD d minUnprocessedLevel I
FIELD e hasUpdates Z
METHOD <init> (III)V
ARG 1 levelCount
ARG 2 initLevelCapacity
ARG 3 initTotalCapacity
METHOD a updateMinUnprocessed (I)V
ARG 1 maxLevel
ARG 2 previousMinUnprocessed
METHOD a minLevel (II)I
ARG 1 level
ARG 2 max
ARG 3 ret
METHOD a setLevelFor (JI)V
ARG 1 index
ARG 3 level
METHOD a addWithLevel (JII)V
ARG 1 id
ARG 3 level
ARG 4 targetLevel
METHOD a removeFromLevel (JIIZ)V
ARG 1 index
ARG 3 level
ARG 4 maxLevel
ARG 5 removeFromLevelMap
METHOD a processLevelAt (JIZ)V
ARG 1 index
ARG 3 level
METHOD a getMergedLevel (JJI)I
ARG 1 position
ARG 3 source
ARG 5 newLevel
METHOD a scheduleUpdate (JJIIIZ)V
ARG 1 sourceIndex
ARG 3 updateIndex
ARG 5 newBaseLevelAtUpdate
ARG 6 currentLevelAtUpdate
ARG 7 oldLevelAtUpdate
ARG 8 modeFlag
ARG 9 isOrigin
ARG 10 levelAfterUpdate
METHOD a scheduleNewLevelUpdate (JJIZ)V
ARG 1 sourceIndex
ARG 3 updateIndex
ARG 5 lastLevel
METHOD b updateLevels (I)I
ARG 1 maxSteps
ARG 2 level
ARG 3 nextIndex
ARG 5 positionStatus
ARG 6 targetLevel
METHOD b getBaseLevelFor (JJI)I
ARG 1 source
ARG 3 position
ARG 5 previousLevel
METHOD b scheduleUpdateRecursively (JJIZ)V
ARG 1 sourceIndex
ARG 3 updateIndex
ARG 5 sourceLevel
ARG 6 modeFlag
ARG 7 oldLevel
ARG 8 newBaseLevel
ARG 9 levelAtUpdateIndex
ARG 10 isUpdateSource
METHOD c isInvalidIndex (J)Z
ARG 1 index
METHOD e hasLevelUpdates ()Z
METHOD e getCurrentLevelFor (J)I
ARG 1 index
METHOD g remove (J)V
ARG 1 index
ARG 3 currentLevel
ARG 4 newLevel
ARG 5 minLevel
METHOD h scheduleNewUpdate (J)V
ARG 1 idx

View File

@ -39,6 +39,7 @@ CLASS et net/minecraft/util/math/BlockPos
METHOD d crossProduct (Lfn;)Lfn;
METHOD g set (Lfn;)Let$a;
METHOD h toImmutable ()Let;
METHOD i setFromLong (J)Let$a;
METHOD o getX ()I
METHOD p getY ()I
METHOD p setY (I)V
@ -86,6 +87,7 @@ CLASS et net/minecraft/util/math/BlockPos
ARG 1 y
ARG 2 z
METHOD a iterateBoxPositions (IIIIII)Ljava/lang/Iterable;
METHOD a toChunkSectionOrigin (J)J
METHOD a add (JIII)J
ARG 0 value
ARG 2 x
@ -126,4 +128,6 @@ CLASS et net/minecraft/util/math/BlockPos
ARG 0 value
METHOD g east ()Let;
METHOD g east (I)Let;
METHOD g removeChunkSectionLocalY (J)J
METHOD h toImmutable ()Let;
METHOD h removeY (J)J

View File

@ -10,6 +10,7 @@ CLASS bre net/minecraft/world/chunk/ChunkManager
ARG 2 spawnAnimals
METHOD b get (II)Lbbb;
ARG 1 chunkX
ARG 2 chunkZ
METHOD f getStatus ()Ljava/lang/String;
METHOD g getChunkGenerator ()Lbrb;
METHOD i getLightingProvider ()Lceu;

View File

@ -0,0 +1 @@
CLASS brg net/minecraft/world/chunk/ChunkNibbleArray

View File

@ -0,0 +1,6 @@
CLASS bro net/minecraft/world/chunk/ChunkProvider
METHOD a onLightUpdate (Lbca;III)V
METHOD b get (II)Lbbb;
ARG 1 chunkX
ARG 2 chunkZ
METHOD j getWorldAsView ()Lbbb;

View File

@ -1,3 +0,0 @@
CLASS bro net/minecraft/world/chunk/ChunkView
METHOD b get (II)Lbbb;
ARG 1 chunkX

View File

@ -0,0 +1,21 @@
CLASS ceo net/minecraft/world/chunk/WorldNibbleStorage
FIELD a arraysByChunk Lit/unimi/dsi/fastutil/longs/Long2ObjectOpenHashMap;
FIELD b cachedCoords [J
FIELD c cachedData [Lbrg;
FIELD d hasCache Z
METHOD <init> (Lit/unimi/dsi/fastutil/longs/Long2ObjectOpenHashMap;)V
ARG 1 map
METHOD a cloneChunkData (J)V
ARG 1 chunkPos
METHOD a addForChunk (JLbrg;)V
ARG 1 chunkPos
ARG 3 data
METHOD b copy ()Lceo;
METHOD b hasChunk (J)Z
ARG 1 chunkPos
METHOD c clearCache ()V
METHOD c getDataForChunk (J)Lbrg;
ARG 1 chunkPos
METHOD d disableCache ()V
METHOD d removeChunk (J)V
ARG 1 chunkPos

View File

@ -0,0 +1,10 @@
CLASS cen net/minecraft/world/chunk/light/BlockLightStorage
CLASS cen$a Data
METHOD <init> (Lit/unimi/dsi/fastutil/longs/Long2ObjectOpenHashMap;)V
ARG 1 map
METHOD a copy ()Lcen$a;
METHOD b copy ()Lceo;
METHOD <init> (Lbro;)V
ARG 1 chunkProvider
METHOD a getLight (J)I
ARG 1 blockPos

View File

@ -0,0 +1,22 @@
CLASS cem net/minecraft/world/chunk/light/ChunkBlockLightProvider
FIELD d DIRECTIONS_BLOCKLIGHT [Ley;
FIELD e mutablePos Let$a;
METHOD <init> (Lbro;)V
ARG 1 chunkProvider
METHOD a processLevelAt (JIZ)V
ARG 1 index
ARG 3 level
ARG 5 blockChunkId
ARG 11 newPosition
ARG 13 blockChunkPosition
METHOD a getMergedLevel (JJI)I
ARG 1 position
ARG 3 source
ARG 5 newLevel
ARG 6 level
METHOD b getLightSourceLuminance (J)I
ARG 1 blockPos
METHOD b getBaseLevelFor (JJI)I
ARG 1 source
ARG 3 position
ARG 5 previousLevel

View File

@ -0,0 +1,52 @@
CLASS cer net/minecraft/world/chunk/light/ChunkLightProvider
FIELD a chunkProvider Lbro;
FIELD b type Lbca;
FIELD c lightStorage Lcet;
FIELD d DIRECTIONS [Ley;
FIELD f srcMutablePos Let$a;
FIELD g destMutablePos Let$a;
FIELD h mutablePosGetLightBlockedBetween Let$a;
METHOD <init> (Lbro;Lbca;Lcet;)V
ARG 1 chunkProvider
ARG 2 type
ARG 3 lightStorage
METHOD a getChunkLightArray (III)Lbrg;
METHOD a scheduleChunkLightUpdate (IIIZ)V
ARG 1 chunkX
ARG 2 chunkY
ARG 3 chunkZ
ARG 4 isEmpty
METHOD a doLightUpdates (IZZ)I
ARG 1 stepCount
METHOD a setLevelFor (JI)V
ARG 1 index
ARG 3 level
METHOD a getLightBlockedBetween (JJ)I
ARG 1 src
ARG 3 dest
ARG 5 srcChunkX
ARG 6 srcChunkZ
ARG 7 destChunkX
ARG 8 destChunkZ
ARG 9 destBlockView
ARG 10 destBlockState
ARG 11 globalBlockView
METHOD a getMergedLevel (JJI)I
ARG 1 position
ARG 3 source
ARG 5 newLevel
METHOD a getCurrentLevelFromArray (Lbrg;J)I
ARG 1 array
ARG 2 blockPos
METHOD a queueLightCheck (Let;)V
METHOD b getBaseLevelFor (JJI)I
ARG 1 source
ARG 3 position
ARG 5 previousLevel
METHOD b getLightLevel (Let;)I
METHOD c isInvalidIndex (J)Z
ARG 1 index
METHOD e getCurrentLevelFor (J)I
ARG 1 index
METHOD h scheduleNewUpdate (J)V
ARG 1 idx

View File

@ -0,0 +1,11 @@
CLASS ces net/minecraft/world/chunk/light/ChunkLightingView
CLASS ces$a Empty
METHOD a getChunkLightArray (III)Lbrg;
METHOD a scheduleChunkLightUpdate (IIIZ)V
ARG 1 chunkX
ARG 2 chunkY
ARG 3 chunkZ
ARG 4 isEmpty
METHOD b getLightLevel (Let;)I
METHOD a getChunkLightArray (III)Lbrg;
METHOD b getLightLevel (Let;)I

View File

@ -0,0 +1,18 @@
CLASS cew net/minecraft/world/chunk/light/ChunkSkyLightProvider
FIELD d DIRECTIONS_SKYLIGHT [Ley;
FIELD e HORIZONTAL_DIRECTIONS [Ley;
METHOD <init> (Lbro;)V
ARG 1 chunkProvider
METHOD a processLevelAt (JIZ)V
ARG 1 index
ARG 3 level
METHOD a getMergedLevel (JJI)I
ARG 1 position
ARG 3 source
ARG 5 newLevel
METHOD b getBaseLevelFor (JJI)I
ARG 1 source
ARG 3 position
ARG 5 previousLevel
METHOD h scheduleNewUpdate (J)V
ARG 1 idx

View File

@ -1,9 +1,75 @@
CLASS cer net/minecraft/world/chunk/light/LightStorage
FIELD a view Lbro;
FIELD b type Lbca;
METHOD <init> (Lbro;Lbca;Lcet;)V
ARG 1 view
ARG 2 type
METHOD a queueLightCheck (Let;)V
METHOD b getLightLevel (Let;)I
METHOD h queueLightCheck (J)V
CLASS cet net/minecraft/world/chunk/light/LightStorage
FIELD a EMPTY Lbrg;
FIELD e dataStorageUncached Lceo;
FIELD f dataStorage Lceo;
FIELD h toNotify Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD i toUpdate Lit/unimi/dsi/fastutil/longs/Long2ObjectMap;
FIELD j hasLightUpdates Z
FIELD k DIRECTIONS [Ley;
FIELD l lightType Lbca;
FIELD m chunkProvider Lbro;
FIELD n toRemove Lit/unimi/dsi/fastutil/longs/LongSet;
METHOD <init> (Lbca;Lbro;Lceo;)V
ARG 1 lightType
ARG 2 chunkProvider
ARG 3 lightData
METHOD a hasLightUpdates ()Z
METHOD a getLight (J)I
ARG 1 blockPos
METHOD a setLevelFor (JI)V
ARG 1 index
ARG 3 level
METHOD a processLevelAt (JIZ)V
ARG 1 index
ARG 3 level
METHOD a getMergedLevel (JJI)I
ARG 1 position
ARG 3 source
ARG 5 newLevel
METHOD a scheduleToUpdate (JLbrg;)V
ARG 1 blockChunkPos
ARG 3 array
METHOD a getDataForChunk (JZ)Lbrg;
ARG 1 chunkPos
ARG 3 cached
METHOD a getDataForChunk (Lceo;J)Lbrg;
ARG 1 storage
ARG 2 chunkPos
METHOD a removeChunkData (Lcer;J)V
ARG 1 storage
ARG 2 blockChunkPos
ARG 4 minChunkX
ARG 5 minChunkY
ARG 6 minChunkZ
ARG 10 index
METHOD a processUpdates (Lcer;ZZ)V
ARG 1 lightProvider
ARG 2 doSkylight
ARG 3 doEdgeLightPropagation
ARG 4 chunkDataIterator
ARG 5 chunkDataEntry
ARG 6 chunkPos
METHOD b updateAll ()V
METHOD b hasChunk (J)Z
ARG 1 chunkPos
METHOD b set (JI)V
ARG 1 blockPos
ARG 3 value
METHOD b getBaseLevelFor (JJI)I
ARG 1 source
ARG 3 position
ARG 5 previousLevel
METHOD c notify ()V
METHOD c isInvalidIndex (J)Z
ARG 1 index
METHOD c scheduleChunkLightUpdate (JZ)V
ARG 1 chunkBlockPos
ARG 3 isEmpty
METHOD d get (J)I
ARG 1 blockPos
METHOD e getCurrentLevelFor (J)I
ARG 1 index
METHOD f (J)V
ARG 1 blockPos
METHOD i onChunkRemoved (J)V
METHOD j getDataForChunk (J)Lbrg;

View File

@ -1,3 +1,21 @@
CLASS ceu net/minecraft/world/chunk/light/LightingProvider
FIELD a blockLightProvider Lcer;
FIELD b skyLightProvider Lcer;
METHOD <init> (Lbro;ZZ)V
ARG 1 chunkProvider
ARG 2 hasBlockLight
ARG 3 hasSkyLight
METHOD a scheduleChunkLightUpdate (IIIZ)V
ARG 1 chunkX
ARG 2 chunkY
ARG 3 chunkZ
ARG 4 isEmpty
METHOD a doLightUpdates (IZZ)I
ARG 1 maxUpdateCount
ARG 4 maxCountBlocklight
ARG 6 maxCountSkylight
METHOD a get (Lbca;)Lces;
METHOD a queueLightCheck (Let;)V
METHOD a enqueueLightUpdate (Let;)V
ARG 1 pos
METHOD a (Let;I)V
ARG 1 pos

View File

@ -1 +1,8 @@
CLASS cev net/minecraft/world/chunk/light/LightingView
METHOD a scheduleChunkLightUpdate (IIIZ)V
ARG 1 chunkX
ARG 2 chunkY
ARG 3 chunkZ
ARG 4 isEmpty
METHOD a scheduleChunkLightUpdate (Let;Z)V
ARG 1 pos

View File

@ -0,0 +1,30 @@
CLASS cex net/minecraft/world/chunk/light/SkyLightStorage
CLASS cex$a Data
FIELD b defaultHeight I
FIELD c heightMap Lit/unimi/dsi/fastutil/longs/Long2IntOpenHashMap;
METHOD b copy ()Lceo;
FIELD k DIRECTIONS_SKYLIGHT [Ley;
FIELD p hasSkyLightUpdates Z
METHOD <init> (Lbro;)V
ARG 1 chunkProvider
METHOD a hasLightUpdates ()Z
METHOD a isAboveMinimumHeight (I)Z
ARG 1 blockY
METHOD a getLight (J)I
ARG 1 blockPos
ARG 3 sectionOrigin
ARG 5 sectionOriginY
ARG 6 uncachedStorage
ARG 7 height
ARG 8 lightData
METHOD a processUpdates (Lcer;ZZ)V
ARG 1 lightProvider
ARG 2 doSkylight
ARG 3 doEdgeLightPropagation
METHOD d checkForUpdates ()V
METHOD f (J)V
ARG 1 blockPos
ARG 3 blockY
ARG 4 blockColumnPos
ARG 6 height
METHOD i onChunkRemoved (J)V

19
mappings/ug.mapping Normal file
View File

@ -0,0 +1,19 @@
CLASS ug
FIELD b CHUNK_POS_OUT_OF_WORLD J
METHOD <init> (III)V
ARG 1 levelCount
ARG 2 initLevelCapacity
ARG 3 initTotalCapacity
METHOD a processLevelAt (JIZ)V
ARG 1 index
ARG 3 stage
METHOD a getMergedLevel (JJI)I
ARG 1 position
ARG 3 source
ARG 5 newLevel
METHOD b getBaseLevelFor (JJI)I
ARG 1 source
ARG 3 position
ARG 5 previousLevel
METHOD c isInvalidIndex (J)Z
ARG 1 index

12
mappings/uk.mapping Normal file
View File

@ -0,0 +1,12 @@
CLASS uk
CLASS uk$a
METHOD a setLevelFor (JI)V
ARG 1 index
ARG 3 level
METHOD e getCurrentLevelFor (J)I
ARG 1 index
METHOD a setLevelFor (JI)V
ARG 1 index
ARG 3 level
METHOD e getCurrentLevelFor (J)I
ARG 1 index