re-formatted README.txt

This commit is contained in:
Sokomine 2014-08-30 21:49:06 +02:00
parent bb836c5177
commit 31d3ea54d8

View File

@ -7,13 +7,14 @@ Procedure for testing:
4. Take a stack out of one of the inventory slots of the demo-object and put it 4. Take a stack out of one of the inventory slots of the demo-object and put it
into an *empty* receiving slot in your player-inventory. into an *empty* receiving slot in your player-inventory.
Expected result: stack removed from demo-object and moved into your inventory; Expected result: stack removed from demo-object and moved into your inv
allow_metadata_inventory_take is called and ALLOWS the move allow_metadata_inventory_take is called and ALLOWS the move
Observed behaviour: OK - works as expected Observed behaviour: OK - works as expected
With patch: OK - works as expected With patch: OK - works as expected
5. Try to take a stack from your inventory and put it into an *empty* slot of the demo object. 5. Try to take a stack from your inventory and put it into an *empty* slot of
the demo object.
Expected result: move denied Expected result: move denied
stack will appear back in your inventory stack will appear back in your inventory
@ -21,33 +22,42 @@ Expected result: move denied
Observed behaviour: OK Observed behaviour: OK
With patch: OK With patch: OK
6. Try to take a stack out of the demo-object and place it on a slot in your player 6. Try to take a stack out of the demo-object and place it on a slot in your
inventory that *already contains* a diffrent stack. player inventory that *already contains* a diffrent stack.
Expected result: move denied - the destination inventory slot is occupied, and the output slot Expected result: move denied - the destination inventory slot is occupied,
of the demo object does not want any input and the output slot of the demo object does not want any
Observed behaviour: allow_metadata_inventory_take is called and allows taking the stack out of the demo-object; input
The stack in the receiving slot never appears as a parameter in any api call. Observed behaviour: allow_metadata_inventory_take is called and allows taking
The stack in the receiving slot is PUT (swpapped) into the output-only-slot of the demo object. the stack out of the demo-object;
The demo object does not receive any information at all about the new stack in its output-only-slot. The stack in the receiving slot never appears as a
parameter in any api call.
The stack in the receiving slot is PUT (swapped) into the
output-only-slot of the demo object.
The demo object does not receive any information at all
about the new stack in its output-only-slot.
With patch: OK With patch: OK
So far, so good. Bug fixed. But: An undesired side-effect shows up which is bad for gameplay: So far, so good. Bug fixed. But: An undesired side-effect shows up which is bad
for gameplay:
7. Place a normal chest. (default:chest) 7. Place a normal chest. (default:chest)
8. Put a stack of something into the chest. 8. Put a stack of something into the chest.
9. As in 6., take the stack back out of the chest and try to place it in a slot of your inventory that already contains 9. As in 6., take the stack back out of the chest and try to place it in a slot
a diffrent stack. of your inventory that already contains a diffrent stack.
Expected result: The stack out of the chest is placed into your inventory slot. Expected result: The stack out of the chest is placed into your inventory
The stack that occupied your inventory slot before is placed in the chest. slot. The stack that occupied your inventory slot before is
Observed behaviour: OK - The old stack from your inventory gets put into the chest, and the new stack will stick to your mouse, placed in the chest.
ready to be put into the - now empty - slot in your inventory. Observed behaviour: OK - The old stack from your inventory gets put into the
chest, and the new stack will stick to your mouse,
ready to be put into the - now empty - slot in your
inventory.
With patch: Move denied. With patch: Move denied.
Possible solution: Possible solution: Extend
Extend allow_metadata_inventory_take = function(pos, listname, index, stack, player) allow_metadata_inventory_take = function(pos, listname, index, stack, player)
by adding a new parameter that provides information about the RECEIVING slot: by adding a new parameter that provides information about the RECEIVING slot:
allow_metadata_inventory_take = function(pos, listname, index, stack, player, will_swap ) allow_metadata_inventory_take = function(pos, listname, index, stack, player, will_swap )
If the destination inventory cannot (fully) take the stack, will_swap is true. Else false. If the destination inventory cannot (fully) take the stack, will_swap is true. Else false.