Container and ContainerScreen improvements (#1035)

* Property mappings and javadoc

* BlockContext docs

* Add javadocs, param names, stacks -> trackedStacks

* Port more changes from Container -> Menu

- (Nameable)ContainerProvider -> (Nameable)ContainerFactory
  Prevents conflicts with the ContainerProvider used in screens.

- ContainerScreen9/54 -> Generic(3x3)ContainerScreen
  To match the menu class names.

- ClientDummyContainerProvider -> SimpleNamedContainerFactory
  Closes #889.

- AbstractContainerScreen -> ContainerScreen
  Removed pointless abstract prefix.

* Fix some block methods, PlayerContainer tweaks

* Networking-related container mappings
This commit is contained in:
Juuxel 2020-01-21 20:21:12 +02:00 committed by modmuss50
parent 0602bc748b
commit 870a3395ab
21 changed files with 93 additions and 50 deletions

View File

@ -34,7 +34,7 @@ CLASS net/minecraft/class_2248 net/minecraft/block/Block
ARG 2 view
ARG 3 pos
METHOD method_16841 getOffsetType ()Lnet/minecraft/class_2248$class_2250;
METHOD method_17454 createContainerProvider (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)Lnet/minecraft/class_3908;
METHOD method_17454 createContainerFactory (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)Lnet/minecraft/class_3908;
ARG 1 state
ARG 2 world
ARG 3 pos

View File

@ -179,7 +179,7 @@ CLASS net/minecraft/class_2680 net/minecraft/block/BlockState
METHOD method_16550 serialize (Lcom/mojang/datafixers/types/DynamicOps;Lnet/minecraft/class_2680;)Lcom/mojang/datafixers/Dynamic;
ARG 0 ops
ARG 1 state
METHOD method_17526 createContainerProvider (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)Lnet/minecraft/class_3908;
METHOD method_17526 createContainerFactory (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)Lnet/minecraft/class_3908;
ARG 1 world
ARG 2 pos
METHOD method_17770 getOutlineShape (Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Lnet/minecraft/class_265;

View File

@ -1,4 +1,4 @@
CLASS net/minecraft/class_465 net/minecraft/client/gui/screen/ingame/AbstractContainerScreen
CLASS net/minecraft/class_465 net/minecraft/client/gui/screen/ingame/ContainerScreen
FIELD field_17410 playerInventory Lnet/minecraft/class_1661;
FIELD field_2776 x I
FIELD field_2777 touchDragSlotStart Lnet/minecraft/class_1735;

View File

@ -1,4 +1,4 @@
CLASS net/minecraft/class_480 net/minecraft/client/gui/screen/ingame/ContainerScreen9
CLASS net/minecraft/class_480 net/minecraft/client/gui/screen/ingame/Generic3x3ContainerScreen
FIELD field_2885 TEXTURE Lnet/minecraft/class_2960;
METHOD <init> (Lnet/minecraft/class_1716;Lnet/minecraft/class_1661;Lnet/minecraft/class_2561;)V
ARG 1 container

View File

@ -1,4 +1,4 @@
CLASS net/minecraft/class_476 net/minecraft/client/gui/screen/ingame/ContainerScreen54
CLASS net/minecraft/class_476 net/minecraft/client/gui/screen/ingame/GenericContainerScreen
FIELD field_2861 TEXTURE Lnet/minecraft/class_2960;
FIELD field_2864 rows I
METHOD <init> (Lnet/minecraft/class_1707;Lnet/minecraft/class_1661;Lnet/minecraft/class_2561;)V

View File

@ -1,5 +1,5 @@
CLASS net/minecraft/class_3935 net/minecraft/client/gui/screen/ingame/LecternScreen
FIELD field_17422 lecternContainer Lnet/minecraft/class_3916;
FIELD field_17422 container Lnet/minecraft/class_3916;
FIELD field_17423 listener Lnet/minecraft/class_1712;
METHOD <init> (Lnet/minecraft/class_3916;Lnet/minecraft/class_1661;Lnet/minecraft/class_2561;)V
ARG 1 container

View File

@ -1,5 +0,0 @@
CLASS net/minecraft/class_747 net/minecraft/client/network/ClientDummyContainerProvider
FIELD field_17280 containerProvider Lnet/minecraft/class_1270;
FIELD field_3947 name Lnet/minecraft/class_2561;
METHOD createMenu (ILnet/minecraft/class_1661;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1703;
ARG 1 syncId

View File

@ -1,4 +1,4 @@
CLASS net/minecraft/class_2645 net/minecraft/client/network/packet/GuiCloseS2CPacket
FIELD field_12137 id I
CLASS net/minecraft/class_2645 net/minecraft/client/network/packet/CloseContainerS2CPacket
FIELD field_12137 syncId I
METHOD <init> (I)V
ARG 1 id
ARG 1 syncId

View File

@ -1,11 +1,11 @@
CLASS net/minecraft/class_2651 net/minecraft/client/network/packet/GuiUpdateS2CPacket
CLASS net/minecraft/class_2651 net/minecraft/client/network/packet/ContainerPropertyUpdateS2CPacket
FIELD field_12148 value I
FIELD field_12149 propertyId I
FIELD field_12150 id I
FIELD field_12150 syncId I
METHOD <init> (III)V
ARG 1 window
ARG 1 syncId
ARG 2 propertyId
ARG 3 value
METHOD method_11445 getPropertyId ()I
METHOD method_11446 getValue ()I
METHOD method_11448 getId ()I
METHOD method_11448 getSyncId ()I

View File

@ -1,11 +1,11 @@
CLASS net/minecraft/class_2653 net/minecraft/client/network/packet/GuiSlotUpdateS2CPacket
CLASS net/minecraft/class_2653 net/minecraft/client/network/packet/ContainerSlotUpdateS2CPacket
FIELD field_12151 slot I
FIELD field_12152 id I
FIELD field_12152 syncId I
FIELD field_12153 stack Lnet/minecraft/class_1799;
METHOD <init> (IILnet/minecraft/class_1799;)V
ARG 1 id
ARG 1 syncId
ARG 2 slot
ARG 3 stack
METHOD method_11449 getItemStack ()Lnet/minecraft/class_1799;
METHOD method_11450 getSlot ()I
METHOD method_11452 getId ()I
METHOD method_11452 getSyncId ()I

View File

@ -1,11 +1,11 @@
CLASS net/minecraft/class_2648 net/minecraft/client/network/packet/GuiOpenS2CPacket
FIELD field_12142 entityHorseId I
CLASS net/minecraft/class_2648 net/minecraft/client/network/packet/OpenHorseContainerS2CPacket
FIELD field_12142 horseId I
FIELD field_12143 slotCount I
FIELD field_12144 id I
FIELD field_12144 syncId I
METHOD <init> (III)V
ARG 1 id
ARG 1 syncId
ARG 2 slotCount
ARG 3 entityHorseId
METHOD method_11432 getId ()I
ARG 3 horseId
METHOD method_11432 getSyncId ()I
METHOD method_11433 getHorseId ()I
METHOD method_11434 getSlotCount ()I

View File

@ -1,4 +1,5 @@
CLASS net/minecraft/class_3919 net/minecraft/container/ArrayPropertyDelegate
COMMENT A {@link PropertyDelegate} that is implemented using an int array.
FIELD field_17345 data [I
METHOD <init> (I)V
ARG 1 size

View File

@ -1,7 +1,9 @@
CLASS net/minecraft/class_3914 net/minecraft/container/BlockContext
COMMENT Block contexts allow to get a value using an optionally present {@link World} and {@link BlockPos}.
FIELD field_17304 EMPTY Lnet/minecraft/class_3914;
METHOD method_17392 create (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)Lnet/minecraft/class_3914;
ARG 1 world
ARG 0 world
ARG 1 pos
METHOD method_17393 run (Ljava/util/function/BiConsumer;)V
ARG 1 function
METHOD method_17395 run (Ljava/util/function/BiFunction;)Ljava/util/Optional;

View File

@ -5,24 +5,35 @@ CLASS net/minecraft/class_1703 net/minecraft/container/Container
FIELD field_7758 actionId S
FIELD field_7759 quickCraftButton I
FIELD field_7760 restrictedPlayers Ljava/util/Set;
FIELD field_7761 slotList Ljava/util/List;
FIELD field_7761 slots Ljava/util/List;
FIELD field_7762 quickCraftStage I
FIELD field_7763 syncId I
FIELD field_7764 stackList Lnet/minecraft/class_2371;
FIELD field_7764 trackedStacks Lnet/minecraft/class_2371;
COMMENT A list of item stacks that is used for tracking changes in {@link #sendContentUpdates()}.
FIELD field_7765 listeners Ljava/util/List;
METHOD <init> (Lnet/minecraft/class_3917;I)V
ARG 1 type
ARG 2 syncId
METHOD method_17358 getType ()Lnet/minecraft/class_3917;
METHOD method_17359 checkContainerSize (Lnet/minecraft/class_1263;I)V
COMMENT Checks that the size of the provided inventory is at least as large as the {@code expectedSize}.
COMMENT
COMMENT @throws IllegalArgumentException if the inventory size is smaller than {@code exceptedSize}
ARG 1 expectedSize
METHOD method_17360 addProperties (Lnet/minecraft/class_3913;)V
METHOD method_17361 checkContainerDataCount (Lnet/minecraft/class_3913;I)V
COMMENT Checks that the size of the {@code data} is at least as large as the {@code exceptedCount}.
COMMENT
COMMENT @throws IllegalArgumentException if the {@code data} has a smaller size than {@code exceptedCount}
ARG 0 data
ARG 1 expectedCount
METHOD method_17362 addProperty (Lnet/minecraft/class_3915;)Lnet/minecraft/class_3915;
METHOD method_17695 canUse (Lnet/minecraft/class_3914;Lnet/minecraft/class_1657;Lnet/minecraft/class_2248;)Z
ARG 0 context
ARG 1 player
ARG 2 block
METHOD method_7590 setPlayerRestriction (Lnet/minecraft/class_1657;Z)V
ARG 1 player
ARG 2 unrestricted
METHOD method_7591 packClickData (II)I
ARG 0 buttonId
@ -53,10 +64,13 @@ CLASS net/minecraft/class_1703 net/minecraft/container/Container
ARG 1 player
ARG 2 id
METHOD method_7605 endQuickCraft ()V
METHOD method_7606 setProperties (II)V
ARG 1 pos
ARG 2 propertyId
METHOD method_7606 setProperty (II)V
ARG 1 id
ARG 2 value
METHOD method_7607 dropInventory (Lnet/minecraft/class_1657;Lnet/minecraft/class_1937;Lnet/minecraft/class_1263;)V
ARG 1 player
ARG 2 world
ARG 3 inventory
METHOD method_7608 calculateComparatorOutput (Lnet/minecraft/class_2586;)I
ARG 0 entity
METHOD method_7609 onContentChanged (Lnet/minecraft/class_1263;)V
@ -64,7 +78,10 @@ CLASS net/minecraft/class_1703 net/minecraft/container/Container
METHOD method_7610 updateSlotStacks (Ljava/util/List;)V
ARG 1 stacks
METHOD method_7611 getSlot (I)Lnet/minecraft/class_1735;
ARG 1 index
METHOD method_7612 canStacksCombine (Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z
ARG 0 first
ARG 1 second
METHOD method_7613 canInsertIntoSlot (Lnet/minecraft/class_1799;Lnet/minecraft/class_1735;)Z
ARG 1 stack
ARG 2 slot
@ -84,9 +101,12 @@ CLASS net/minecraft/class_1703 net/minecraft/container/Container
ARG 0 inventory
METHOD method_7619 setStackInSlot (ILnet/minecraft/class_1799;)V
ARG 1 slot
ARG 2 stack
METHOD method_7620 unpackQuickCraftStage (I)I
ARG 0 clickData
METHOD method_7621 addSlot (Lnet/minecraft/class_1735;)Lnet/minecraft/class_1735;
ARG 1 slot
METHOD method_7622 isRestricted (Lnet/minecraft/class_1657;)Z
METHOD method_7622 isNotRestricted (Lnet/minecraft/class_1657;)Z
ARG 1 player
METHOD method_7623 sendContentUpdates ()V
COMMENT Sends updates to listeners if any properties or slot stacks have changed.

View File

@ -1,4 +1,4 @@
CLASS net/minecraft/class_1270 net/minecraft/container/ContainerProvider
CLASS net/minecraft/class_1270 net/minecraft/container/ContainerFactory
METHOD createMenu (ILnet/minecraft/class_1661;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1703;
ARG 1 syncId
ARG 2 inv

View File

@ -1,2 +1,2 @@
CLASS net/minecraft/class_3908 net/minecraft/container/NameableContainerProvider
CLASS net/minecraft/class_3908 net/minecraft/container/NameableContainerFactory
METHOD method_5476 getDisplayName ()Lnet/minecraft/class_2561;

View File

@ -5,12 +5,13 @@ CLASS net/minecraft/class_1723 net/minecraft/container/PlayerContainer
FIELD field_21671 EMPTY_LEGGINGS_SLOT_TEXTURE Lnet/minecraft/class_2960;
FIELD field_21672 EMPTY_BOOTS_SLOT_TEXTURE Lnet/minecraft/class_2960;
FIELD field_21673 EMPTY_OFFHAND_ARMOR_SLOT Lnet/minecraft/class_2960;
FIELD field_7827 local Z
FIELD field_7827 onServer Z
FIELD field_7828 owner Lnet/minecraft/class_1657;
FIELD field_7829 EMPTY_ARMOR_SLOT_TEXTURES [Lnet/minecraft/class_2960;
FIELD field_7830 invCraftingResult Lnet/minecraft/class_1731;
FIELD field_7831 invCrafting Lnet/minecraft/class_1715;
FIELD field_7830 craftingResultInventory Lnet/minecraft/class_1731;
FIELD field_7831 craftingInventory Lnet/minecraft/class_1715;
FIELD field_7832 EQUIPMENT_SLOT_ORDER [Lnet/minecraft/class_1304;
METHOD <init> (Lnet/minecraft/class_1661;ZLnet/minecraft/class_1657;)V
ARG 1 inventory
ARG 2 local
ARG 2 onServer
ARG 3 owner

View File

@ -1,13 +1,25 @@
CLASS net/minecraft/class_3915 net/minecraft/container/Property
COMMENT An integer property that is stored in a {@link Container}.
COMMENT
COMMENT <p>{@code Property} instances are used for tracking integer properties in property delegates
COMMENT and other sources of integer properties, and sending needed content updates to listeners.
COMMENT
COMMENT @see Container#addProperty
FIELD field_17307 oldValue I
METHOD method_17403 create ()Lnet/minecraft/class_3915;
COMMENT Creates a new property that is not attached to any other objects.
METHOD method_17404 set (I)V
ARG 1 value
METHOD method_17405 create (Lnet/minecraft/class_3913;I)Lnet/minecraft/class_3915;
ARG 1 key
COMMENT Creates a new property that accesses the {@code index} of the {@code delegate}.
ARG 0 delegate
ARG 1 index
METHOD method_17406 create ([II)Lnet/minecraft/class_3915;
ARG 1 key
COMMENT Creates a new property that accesses the {@code index} of the {@code array}.
ARG 0 array
ARG 1 index
METHOD method_17407 get ()I
METHOD method_17408 detectChanges ()Z
METHOD method_17408 hasChanged ()Z
COMMENT Returns true if the value of this property has changed since the last call to {@code hasChanged()}.
CLASS 3
FIELD field_17312 value I

View File

@ -1,7 +1,11 @@
CLASS net/minecraft/class_3913 net/minecraft/container/PropertyDelegate
COMMENT A property delegate represents an indexed list of integer properties.
COMMENT
COMMENT <p>Property delegates are used for displaying integer values in screens,
COMMENT such as the progress bars in furnaces.
METHOD method_17389 size ()I
METHOD method_17390 get (I)I
ARG 1 key
ARG 1 index
METHOD method_17391 set (II)V
ARG 1 key
ARG 1 index
ARG 2 value

View File

@ -0,0 +1,8 @@
CLASS net/minecraft/class_747 net/minecraft/container/SimpleNamedContainerFactory
FIELD field_17280 baseFactory Lnet/minecraft/class_1270;
FIELD field_3947 name Lnet/minecraft/class_2561;
METHOD <init> (Lnet/minecraft/class_1270;Lnet/minecraft/class_2561;)V
ARG 1 baseFactory
ARG 2 name
METHOD createMenu (ILnet/minecraft/class_1661;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1703;
ARG 1 syncId

View File

@ -23,7 +23,7 @@ CLASS net/minecraft/class_2602 net/minecraft/network/listener/ClientPlayPacketLi
ARG 1 packet
METHOD method_11088 onMapUpdate (Lnet/minecraft/class_2683;)V
ARG 1 packet
METHOD method_11089 onGuiOpen (Lnet/minecraft/class_2648;)V
METHOD method_11089 onOpenHorseContainer (Lnet/minecraft/class_2648;)V
ARG 1 packet
METHOD method_11090 onCraftFailedResponse (Lnet/minecraft/class_2695;)V
ARG 1 packet
@ -49,7 +49,7 @@ CLASS net/minecraft/class_2602 net/minecraft/network/listener/ClientPlayPacketLi
ARG 1 packet
METHOD method_11101 onExperienceBarUpdate (Lnet/minecraft/class_2748;)V
ARG 1 packet
METHOD method_11102 onGuiClose (Lnet/minecraft/class_2645;)V
METHOD method_11102 onCloseContainer (Lnet/minecraft/class_2645;)V
ARG 1 packet
METHOD method_11103 onTitle (Lnet/minecraft/class_2762;)V
ARG 1 packet
@ -63,7 +63,7 @@ CLASS net/minecraft/class_2602 net/minecraft/network/listener/ClientPlayPacketLi
ARG 1 packet
METHOD method_11108 onSignEditorOpen (Lnet/minecraft/class_2693;)V
ARG 1 packet
METHOD method_11109 onGuiSlotUpdate (Lnet/minecraft/class_2653;)V
METHOD method_11109 onContainerSlotUpdate (Lnet/minecraft/class_2653;)V
ARG 1 packet
METHOD method_11110 onEntityAttach (Lnet/minecraft/class_2740;)V
ARG 1 packet
@ -107,7 +107,7 @@ CLASS net/minecraft/class_2602 net/minecraft/network/listener/ClientPlayPacketLi
ARG 1 packet
METHOD method_11130 onAdvancements (Lnet/minecraft/class_2779;)V
ARG 1 packet
METHOD method_11131 onGuiUpdate (Lnet/minecraft/class_2651;)V
METHOD method_11131 onContainerPropertyUpdate (Lnet/minecraft/class_2651;)V
ARG 1 packet
METHOD method_11132 onVelocityUpdate (Lnet/minecraft/class_2743;)V
ARG 1 packet