Improvements to lighting engine mappings (#1501)

* Improvements to lighting engine mappings

* Consistency in ChunkLightProvider

* apply some suggestions

* remove skyLight prefixes in SkyLightStorage

* mark paragraphs

* `blockPos` -> `pos`

Co-authored-by: liach <7806504+liach@users.noreply.github.com>

* `blockPos` -> `pos`

Co-authored-by: liach <7806504+liach@users.noreply.github.com>
This commit is contained in:
Gegy 2020-07-12 13:07:22 +02:00 committed by GitHub
parent a9e6995935
commit 467bf82f0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 95 additions and 53 deletions

View File

@ -37,14 +37,14 @@ CLASS net/minecraft/class_4076 net/minecraft/util/math/ChunkSectionPos
METHOD method_18686 getX (J)I METHOD method_18686 getX (J)I
ARG 0 packed ARG 0 packed
METHOD method_18687 getSectionZ ()I METHOD method_18687 getSectionZ ()I
METHOD method_18688 getWorldCoord (I)I METHOD method_18688 getBlockCoord (I)I
ARG 0 chunkCoord ARG 0 sectionCoord
METHOD method_18689 getY (J)I METHOD method_18689 getY (J)I
ARG 0 packed ARG 0 packed
METHOD method_18690 getZ (J)I METHOD method_18690 getZ (J)I
ARG 0 packed ARG 0 packed
METHOD method_18691 fromGlobalPos (J)J METHOD method_18691 fromBlockPos (J)J
ARG 0 globalLong ARG 0 blockPos
METHOD method_18692 toChunkPos ()Lnet/minecraft/class_1923; METHOD method_18692 toChunkPos ()Lnet/minecraft/class_1923;
METHOD method_18693 withZeroZ (J)J METHOD method_18693 withZeroZ (J)J
ARG 0 pos ARG 0 pos

View File

@ -10,23 +10,23 @@ CLASS net/minecraft/class_3558 net/minecraft/world/chunk/light/ChunkLightProvide
ARG 1 chunkProvider ARG 1 chunkProvider
ARG 2 type ARG 2 type
ARG 3 lightStorage ARG 3 lightStorage
METHOD method_15512 setLightEnabled (Lnet/minecraft/class_1923;Z)V METHOD method_15512 setColumnEnabled (Lnet/minecraft/class_1923;Z)V
ARG 1 pos ARG 1 pos
ARG 2 lightEnabled ARG 2 enabled
METHOD method_15513 checkBlock (Lnet/minecraft/class_2338;)V METHOD method_15513 checkBlock (Lnet/minecraft/class_2338;)V
ARG 1 pos ARG 1 pos
METHOD method_15514 addLightSource (Lnet/minecraft/class_2338;I)V METHOD method_15514 addLightSource (Lnet/minecraft/class_2338;I)V
ARG 1 pos ARG 1 pos
ARG 2 level ARG 2 level
METHOD method_15515 setLightArray (JLnet/minecraft/class_2804;Z)V METHOD method_15515 enqueueSectionData (JLnet/minecraft/class_2804;Z)V
ARG 1 pos ARG 1 sectionPos
ARG 3 lightArray ARG 3 lightArray
METHOD method_15516 doLightUpdates (IZZ)I METHOD method_15516 doLightUpdates (IZZ)I
ARG 1 maxSteps ARG 1 maxSteps
ARG 2 doSkylight ARG 2 doSkylight
ARG 3 skipEdgeLightPropagation ARG 3 skipEdgeLightPropagation
METHOD method_15517 getCurrentLevelFromArray (Lnet/minecraft/class_2804;J)I METHOD method_15517 getCurrentLevelFromSection (Lnet/minecraft/class_2804;J)I
ARG 1 array ARG 1 section
ARG 2 blockPos ARG 2 blockPos
METHOD method_15518 hasUpdates ()Z METHOD method_15518 hasUpdates ()Z
METHOD method_17529 getChunk (II)Lnet/minecraft/class_1922; METHOD method_17529 getChunk (II)Lnet/minecraft/class_1922;
@ -43,10 +43,12 @@ CLASS net/minecraft/class_3558 net/minecraft/world/chunk/light/ChunkLightProvide
ARG 6 opacity2 ARG 6 opacity2
METHOD method_20479 getStateForLighting (JLorg/apache/commons/lang3/mutable/MutableInt;)Lnet/minecraft/class_2680; METHOD method_20479 getStateForLighting (JLorg/apache/commons/lang3/mutable/MutableInt;)Lnet/minecraft/class_2680;
ARG 1 pos ARG 1 pos
METHOD method_20599 setRetainData (Lnet/minecraft/class_1923;Z)V METHOD method_20599 setRetainColumn (Lnet/minecraft/class_1923;Z)V
ARG 1 pos ARG 1 pos
ARG 2 retainData ARG 2 retainData
METHOD method_20710 getOpaqueShape (Lnet/minecraft/class_2680;JLnet/minecraft/class_2350;)Lnet/minecraft/class_265; METHOD method_20710 getOpaqueShape (Lnet/minecraft/class_2680;JLnet/minecraft/class_2350;)Lnet/minecraft/class_265;
ARG 1 world ARG 1 world
ARG 2 pos ARG 2 pos
ARG 4 facing ARG 4 facing
METHOD method_22875 displaySectionLevel (J)Ljava/lang/String;
ARG 1 sectionPos

View File

@ -1,5 +1,5 @@
CLASS net/minecraft/class_3562 net/minecraft/world/chunk/light/ChunkLightingView CLASS net/minecraft/class_3562 net/minecraft/world/chunk/light/ChunkLightingView
METHOD method_15543 getLightLevel (Lnet/minecraft/class_2338;)I METHOD method_15543 getLightLevel (Lnet/minecraft/class_2338;)I
METHOD method_15544 getLightArray (Lnet/minecraft/class_4076;)Lnet/minecraft/class_2804; METHOD method_15544 getLightSection (Lnet/minecraft/class_4076;)Lnet/minecraft/class_2804;
ARG 1 pos ARG 1 pos
CLASS class_3563 Empty CLASS class_3563 Empty

View File

@ -65,6 +65,9 @@ CLASS net/minecraft/class_3554 net/minecraft/world/chunk/light/LevelPropagator
ARG 5 removeFully ARG 5 removeFully
METHOD method_15494 isMarker (J)Z METHOD method_15494 isMarker (J)Z
ARG 1 id ARG 1 id
METHOD method_24206 removePendingUpdateIf (Ljava/util/function/LongPredicate;)V
ARG 1 predicate
METHOD method_24208 getPendingUpdateCount ()I
CLASS 1 CLASS 1
METHOD rehash (I)V METHOD rehash (I)V
ARG 1 newN ARG 1 newN

View File

@ -1,55 +1,80 @@
CLASS net/minecraft/class_3560 net/minecraft/world/chunk/light/LightStorage CLASS net/minecraft/class_3560 net/minecraft/world/chunk/light/LightStorage
FIELD field_15796 lightArrays Lnet/minecraft/class_3556; COMMENT LightStorage handles the access, storage and propagation of a specific kind of light within the world.
FIELD field_15798 lightArraysToRemove Lit/unimi/dsi/fastutil/longs/LongSet; COMMENT For example, separate instances will be used to store block light as opposed to sky light.
COMMENT
COMMENT <p>The smallest unit within LightStorage is the section. Sections represent a cube of 16x16x16 blocks and their lighting data.
COMMENT In turn, 16 sections stacked on top of each other form a column, which are analogous to the standard 16x256x16 world chunks.
COMMENT
COMMENT <p>To avoid allocations, LightStorage packs all the coordinate arguments into single long values. Extra care should be taken
COMMENT to ensure that the relevant types are being used where appropriate.
COMMENT
COMMENT @see SkyLightStorage
COMMENT @see BlockLightStorage
FIELD field_15796 storage Lnet/minecraft/class_3556;
FIELD field_15797 markedNotReadySections Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15798 sectionsToRemove Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15799 DIRECTIONS [Lnet/minecraft/class_2350; FIELD field_15799 DIRECTIONS [Lnet/minecraft/class_2350;
FIELD field_15800 hasLightUpdates Z FIELD field_15800 hasLightUpdates Z
FIELD field_15801 EMPTY Lnet/minecraft/class_2804; FIELD field_15801 EMPTY Lnet/minecraft/class_2804;
FIELD field_15802 dirtySections Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15803 chunkProvider Lnet/minecraft/class_2823; FIELD field_15803 chunkProvider Lnet/minecraft/class_2823;
FIELD field_15804 markedReadySections Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15805 lightType Lnet/minecraft/class_1944; FIELD field_15805 lightType Lnet/minecraft/class_1944;
FIELD field_15806 uncachedLightArrays Lnet/minecraft/class_3556; FIELD field_15806 uncachedStorage Lnet/minecraft/class_3556;
FIELD field_15807 lightArraysToAdd Lit/unimi/dsi/fastutil/longs/Long2ObjectMap; FIELD field_15807 queuedSections Lit/unimi/dsi/fastutil/longs/Long2ObjectMap;
FIELD field_15808 nonEmptySections Lit/unimi/dsi/fastutil/longs/LongSet; FIELD field_15808 readySections Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_16448 dirtySections Lit/unimi/dsi/fastutil/longs/LongSet; FIELD field_16448 notifySections Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_19342 columnsToRetain Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_25621 queuedEdgeSections Lit/unimi/dsi/fastutil/longs/LongSet;
METHOD <init> (Lnet/minecraft/class_1944;Lnet/minecraft/class_2823;Lnet/minecraft/class_3556;)V METHOD <init> (Lnet/minecraft/class_1944;Lnet/minecraft/class_2823;Lnet/minecraft/class_3556;)V
ARG 1 lightType ARG 1 lightType
ARG 2 chunkProvider ARG 2 chunkProvider
ARG 3 lightData ARG 3 lightData
METHOD method_15522 getLightArray (JZ)Lnet/minecraft/class_2804; METHOD method_15522 getLightSection (JZ)Lnet/minecraft/class_2804;
ARG 1 sectionPos ARG 1 sectionPos
ARG 3 cached ARG 3 cached
METHOD method_15523 onLightArrayCreated (J)V METHOD method_15523 onLoadSection (J)V
ARG 1 blockPos ARG 1 sectionPos
METHOD method_15524 hasLight (J)Z METHOD method_15524 hasSection (J)Z
ARG 1 sectionPos ARG 1 sectionPos
METHOD method_15525 set (JI)V METHOD method_15525 set (JI)V
ARG 1 blockPos ARG 1 blockPos
ARG 3 value ARG 3 value
METHOD method_15526 updateSectionStatus (JZ)V METHOD method_15526 setSectionStatus (JZ)V
ARG 1 pos ARG 1 sectionPos
ARG 3 empty ARG 3 notReady
METHOD method_15527 updateLightArrays (Lnet/minecraft/class_3558;ZZ)V METHOD method_15527 updateLight (Lnet/minecraft/class_3558;ZZ)V
ARG 1 lightProvider
ARG 2 doSkylight ARG 2 doSkylight
ARG 3 skipEdgeLightPropagation ARG 3 skipEdgeLightPropagation
METHOD method_15528 hasLightUpdates ()Z METHOD method_15528 hasLightUpdates ()Z
METHOD method_15529 createLightArray (J)Lnet/minecraft/class_2804; METHOD method_15529 createSection (J)Lnet/minecraft/class_2804;
ARG 1 pos ARG 1 sectionPos
METHOD method_15530 notifyChunkProvider ()V METHOD method_15530 notifyChanges ()V
METHOD method_15532 setLightArray (JLnet/minecraft/class_2804;Z)V METHOD method_15532 enqueueSectionData (JLnet/minecraft/class_2804;Z)V
ARG 1 pos ARG 1 sectionPos
ARG 3 array ARG 3 array
METHOD method_15533 getLightArray (Lnet/minecraft/class_3556;J)Lnet/minecraft/class_2804; METHOD method_15533 getLightSection (Lnet/minecraft/class_3556;J)Lnet/minecraft/class_2804;
ARG 1 storage ARG 1 storage
ARG 2 sectionPos ARG 2 sectionPos
METHOD method_15534 onChunkRemoved (J)V METHOD method_15534 onUnloadSection (J)V
METHOD method_15535 setLightEnabled (JZ)V ARG 1 sectionPos
METHOD method_15536 removeChunkData (Lnet/minecraft/class_3558;J)V METHOD method_15535 setColumnEnabled (JZ)V
ARG 1 columnPos
ARG 3 enabled
METHOD method_15536 removeSection (Lnet/minecraft/class_3558;J)V
ARG 1 storage ARG 1 storage
ARG 2 blockChunkPos ARG 2 sectionPos
METHOD method_15537 get (J)I METHOD method_15537 get (J)I
ARG 1 blockPos ARG 1 blockPos
METHOD method_15538 getLight (J)I METHOD method_15538 getLight (J)I
ARG 1 blockPos ARG 1 blockPos
METHOD method_15539 updateAll ()V METHOD method_15539 updateAll ()V
METHOD method_20533 getLightArray (J)Lnet/minecraft/class_2804; METHOD method_20533 getLightSection (J)Lnet/minecraft/class_2804;
ARG 1 sectionPos ARG 1 sectionPos
METHOD method_20600 setRetainData (JZ)V METHOD method_20600 setRetainColumn (JZ)V
ARG 1 sectionPos
ARG 3 retain
METHOD method_29967 updateSection (Lnet/minecraft/class_3558;J)V
ARG 1 lightProvider
ARG 2 sectionPos

View File

@ -5,10 +5,10 @@ CLASS net/minecraft/class_3568 net/minecraft/world/chunk/light/LightingProvider
ARG 1 chunkProvider ARG 1 chunkProvider
ARG 2 hasBlockLight ARG 2 hasBlockLight
ARG 3 hasSkyLight ARG 3 hasSkyLight
METHOD method_15557 setLightEnabled (Lnet/minecraft/class_1923;Z)V METHOD method_15557 setColumnEnabled (Lnet/minecraft/class_1923;Z)V
ARG 1 pos ARG 1 pos
ARG 2 lightEnabled ARG 2 lightEnabled
METHOD method_15558 queueData (Lnet/minecraft/class_1944;Lnet/minecraft/class_4076;Lnet/minecraft/class_2804;Z)V METHOD method_15558 enqueueSectionData (Lnet/minecraft/class_1944;Lnet/minecraft/class_4076;Lnet/minecraft/class_2804;Z)V
ARG 1 lightType ARG 1 lightType
ARG 2 pos ARG 2 pos
ARG 3 nibbles ARG 3 nibbles
@ -30,3 +30,4 @@ CLASS net/minecraft/class_3568 net/minecraft/world/chunk/light/LightingProvider
METHOD method_22363 getLight (Lnet/minecraft/class_2338;I)I METHOD method_22363 getLight (Lnet/minecraft/class_2338;I)I
ARG 1 pos ARG 1 pos
ARG 2 ambientDarkness ARG 2 ambientDarkness
METHOD method_22876 displaySectionLevel (Lnet/minecraft/class_1944;Lnet/minecraft/class_4076;)Ljava/lang/String;

View File

@ -1,7 +1,7 @@
CLASS net/minecraft/class_3565 net/minecraft/world/chunk/light/LightingView CLASS net/minecraft/class_3565 net/minecraft/world/chunk/light/LightingView
METHOD method_15551 updateSectionStatus (Lnet/minecraft/class_4076;Z)V METHOD method_15551 setSectionStatus (Lnet/minecraft/class_4076;Z)V
ARG 1 pos ARG 1 pos
ARG 2 status ARG 2 notReady
METHOD method_15552 updateSectionStatus (Lnet/minecraft/class_2338;Z)V METHOD method_15552 setSectionStatus (Lnet/minecraft/class_2338;Z)V
ARG 1 pos ARG 1 pos
ARG 2 status ARG 2 notReady

View File

@ -1,17 +1,28 @@
CLASS net/minecraft/class_3569 net/minecraft/world/chunk/light/SkyLightStorage CLASS net/minecraft/class_3569 net/minecraft/world/chunk/light/SkyLightStorage
FIELD field_15815 pendingSkylightUpdates Lit/unimi/dsi/fastutil/longs/LongSet; FIELD field_15815 sectionsToUpdate Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15817 lightEnabled Lit/unimi/dsi/fastutil/longs/LongSet; FIELD field_15816 sectionsToRemove Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15817 enabledColumns Lit/unimi/dsi/fastutil/longs/LongSet;
FIELD field_15818 LIGHT_REDUCTION_DIRECTIONS [Lnet/minecraft/class_2350; FIELD field_15818 LIGHT_REDUCTION_DIRECTIONS [Lnet/minecraft/class_2350;
FIELD field_15819 hasSkyLightUpdates Z FIELD field_15819 hasUpdates Z
METHOD <init> (Lnet/minecraft/class_2823;)V METHOD <init> (Lnet/minecraft/class_2823;)V
ARG 1 chunkProvider ARG 1 chunkProvider
METHOD method_15566 isLightEnabled (J)Z METHOD method_15565 isTopmostBlock (J)Z
ARG 1 blockPos
METHOD method_15566 isSectionEnabled (J)Z
ARG 1 sectionPos ARG 1 sectionPos
METHOD method_15567 isAboveMinHeight (I)Z METHOD method_15567 isAboveMinHeight (I)Z
ARG 1 blockY ARG 1 sectionY
METHOD method_15568 isAboveTopmostLightArray (J)Z METHOD method_15568 isAtOrAboveTopmostSection (J)Z
ARG 1 pos ARG 1 sectionPos
METHOD method_15569 checkForUpdates ()V METHOD method_15569 checkForUpdates ()V
METHOD method_20809 enqueueRemoveSection (J)V
ARG 1 sectionPos
METHOD method_20810 enqueueAddSection (J)V
ARG 1 sectionPos
CLASS class_3570 Data CLASS class_3570 Data
FIELD field_15821 topArraySectionY Lit/unimi/dsi/fastutil/longs/Long2IntOpenHashMap; FIELD field_15821 columnToTopSection Lit/unimi/dsi/fastutil/longs/Long2IntOpenHashMap;
FIELD field_15822 defaultTopArraySectionY I FIELD field_15822 minSectionY I
METHOD <init> (Lit/unimi/dsi/fastutil/longs/Long2ObjectOpenHashMap;Lit/unimi/dsi/fastutil/longs/Long2IntOpenHashMap;I)V
ARG 1 arrays
ARG 2 columnToTopSection
ARG 3 minSectionY