add item deselect
This commit is contained in:
parent
f123a599a2
commit
ac65a43bbc
20 changed files with 84 additions and 78 deletions
|
@ -452,7 +452,7 @@ public class Client implements IThreadListener {
|
|||
private final List<ChunkClient> chunkListing = Lists.<ChunkClient>newArrayList();
|
||||
private final Set<Long> emptyChunkListing = Sets.<Long>newHashSet();
|
||||
private final Set<Long> nextEmptyChunkListing = Sets.<Long>newHashSet();
|
||||
private final int[] lastSelection = new int[ItemCategory.values().length];
|
||||
public final int[] lastSelection = new int[ItemCategory.values().length];
|
||||
|
||||
private boolean primary;
|
||||
private boolean secondary;
|
||||
|
@ -573,9 +573,9 @@ public class Client implements IThreadListener {
|
|||
public LocalPos pointedLiquid;
|
||||
public DisplayMode vidMode;
|
||||
public String dimensionName;
|
||||
public ItemCategory itemSelection = ItemCategory.USEABLE;
|
||||
private ChunkClient emptyChunk;
|
||||
private ChunkClient outsideChunk;
|
||||
private ItemCategory itemSelection = ItemCategory.USEABLE;
|
||||
|
||||
private List<Entity> entities;
|
||||
private List<Entity> unloaded;
|
||||
|
@ -1557,6 +1557,8 @@ public class Client implements IThreadListener {
|
|||
private void select(int dir) {
|
||||
int last = this.player.getSelectedIndex();
|
||||
int n = 0;
|
||||
if(last < 0)
|
||||
this.player.setSelectedIndex(0);
|
||||
do {
|
||||
this.player.setSelectedIndex(this.player.getSelectedIndex() + dir);
|
||||
if(this.player.getSelectedIndex() < 0)
|
||||
|
@ -1574,9 +1576,10 @@ public class Client implements IThreadListener {
|
|||
|
||||
private void category(int dir) {
|
||||
ItemCategory last = this.itemSelection;
|
||||
this.lastSelection[last.ordinal()] = this.player.getSelectedIndex();
|
||||
this.lastSelection[last.ordinal()] = this.player.getSelectedIndex() >= 0 ? this.player.getSelectedIndex() : 0;
|
||||
int total;
|
||||
int n = 0;
|
||||
boolean any = false;
|
||||
do {
|
||||
this.itemSelection = ItemCategory.values()[(ItemCategory.values().length + this.itemSelection.ordinal() + dir) % ItemCategory.values().length];
|
||||
total = 0;
|
||||
|
@ -1584,6 +1587,7 @@ public class Client implements IThreadListener {
|
|||
if(this.player.getStackInSlot(z) != null && this.player.getStackInSlot(z).getItem().getCategory() == this.itemSelection)
|
||||
++total;
|
||||
}
|
||||
any |= total > 0;
|
||||
++n;
|
||||
}
|
||||
while(total <= 0 && n < ItemCategory.values().length);
|
||||
|
@ -1592,6 +1596,9 @@ public class Client implements IThreadListener {
|
|||
this.controller.resetUseCooldown();
|
||||
this.player.setSelectedIndex(Math.min(this.lastSelection[this.itemSelection.ordinal()], this.player.getHotbarSize() - 1));
|
||||
}
|
||||
else if(!any) {
|
||||
this.player.setSelectedIndex(-1);
|
||||
}
|
||||
}
|
||||
|
||||
public void moveCamera(float x, float y) {
|
||||
|
@ -1679,7 +1686,7 @@ public class Client implements IThreadListener {
|
|||
this.player.swingItem();
|
||||
this.player.client.addToSendQueue(new CPacketAction(Action.ITEM_ACTION, ItemControl.PRIMARY.ordinal()));
|
||||
if(this.player.getHeldItem() != null && this.player.getHeldItem().isEmpty())
|
||||
this.player.setHeldItem(null);
|
||||
this.player.clearHeldItem();
|
||||
this.leftClickCounter = 10;
|
||||
return;
|
||||
}
|
||||
|
@ -1733,7 +1740,7 @@ public class Client implements IThreadListener {
|
|||
this.player.swingItem();
|
||||
this.player.client.addToSendQueue(new CPacketAction(Action.ITEM_ACTION, ItemControl.SECONDARY.ordinal()));
|
||||
if(this.player.getHeldItem() != null && this.player.getHeldItem().isEmpty())
|
||||
this.player.setHeldItem(null);
|
||||
this.player.clearHeldItem();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1767,7 +1774,7 @@ public class Client implements IThreadListener {
|
|||
|
||||
if (itemstack.isEmpty())
|
||||
{
|
||||
this.player.setHeldItem(null);
|
||||
this.player.clearHeldItem();
|
||||
}
|
||||
else if (itemstack.getSize() != i)
|
||||
{
|
||||
|
@ -1796,7 +1803,7 @@ public class Client implements IThreadListener {
|
|||
if(this.player.getHeldItem() != null && this.player.getHeldItem().getItem().onAction(this.player.getHeldItem(), this.player, this.world, ItemControl.TERTIARY, null)) {
|
||||
this.player.client.addToSendQueue(new CPacketAction(Action.ITEM_ACTION, ItemControl.TERTIARY.ordinal()));
|
||||
if(this.player.getHeldItem() != null && this.player.getHeldItem().isEmpty())
|
||||
this.player.setHeldItem(null);
|
||||
this.player.clearHeldItem();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1813,7 +1820,7 @@ public class Client implements IThreadListener {
|
|||
this.player.setSelectedIndex(idx);
|
||||
this.controller.resetUseCooldown();
|
||||
}
|
||||
if(this.itemCheat) {
|
||||
if(this.itemCheat && this.player.getSelectedIndex() >= 0) {
|
||||
this.player.client.addToSendQueue(new CPacketCheat(item, -2 - this.player.getSelectedIndex(), this.ctrl()));
|
||||
}
|
||||
}
|
||||
|
@ -1826,7 +1833,7 @@ public class Client implements IThreadListener {
|
|||
if(this.player.getHeldItem() != null && this.player.getHeldItem().getItem().onAction(this.player.getHeldItem(), this.player, this.world, ItemControl.QUARTERNARY, null)) {
|
||||
this.player.client.addToSendQueue(new CPacketAction(Action.ITEM_ACTION, ItemControl.QUARTERNARY.ordinal()));
|
||||
if(this.player.getHeldItem() != null && this.player.getHeldItem().isEmpty())
|
||||
this.player.setHeldItem(null);
|
||||
this.player.clearHeldItem();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -510,7 +510,7 @@ public class ClientPlayer implements IClientPlayer
|
|||
|
||||
if (i == 0)
|
||||
{
|
||||
player.setHeldItem(null);
|
||||
player.clearHeldItem();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -568,11 +568,15 @@ public class ClientPlayer implements IClientPlayer
|
|||
{
|
||||
NetHandler.checkThread(packetIn, this, this.gm, this.world);
|
||||
|
||||
if (packetIn.getHeldItemHotbarIndex() >= 0 && packetIn.getHeldItemHotbarIndex() < this.gm.player.getHotbarSize())
|
||||
if (packetIn.getHeldItemHotbarIndex() >= -1 && packetIn.getHeldItemHotbarIndex() < this.gm.player.getHotbarSize())
|
||||
{
|
||||
if(this.gm.player.getSelectedIndex() != packetIn.getHeldItemHotbarIndex())
|
||||
this.gm.controller.resetUseCooldown();
|
||||
this.gm.player.setSelectedIndex(packetIn.getHeldItemHotbarIndex());
|
||||
if(this.gm.player.getHeldItem() != null && this.gm.player.getHeldItem().getItem().getCategory() != null) {
|
||||
this.gm.itemSelection = this.gm.player.getHeldItem().getItem().getCategory();
|
||||
this.gm.lastSelection[this.gm.itemSelection.ordinal()] = this.gm.player.getSelectedIndex();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ public class PlayerController {
|
|||
stack.getItem().onBlockDestroyed(stack, world, block, pos, this.gm.player);
|
||||
|
||||
if(stack.isEmpty()) {
|
||||
this.gm.player.setHeldItem(null);
|
||||
this.gm.player.clearHeldItem();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ public class PlayerController {
|
|||
this.interacting = true;
|
||||
this.handler.addToSendQueue(new CPacketBreak(CPacketBreak.Action.START_DESTROY_BLOCK, pos, face));
|
||||
if(this.gm.player.getHeldItem() != null && this.gm.player.getHeldItem().isEmpty())
|
||||
this.gm.player.setHeldItem(null);
|
||||
this.gm.player.clearHeldItem();
|
||||
return true;
|
||||
}
|
||||
if(!this.hitting || !this.isHitting(pos)) {
|
||||
|
@ -260,7 +260,7 @@ public class PlayerController {
|
|||
player.setHeldItem(changed);
|
||||
|
||||
if(changed.isEmpty()) {
|
||||
player.setHeldItem(null);
|
||||
player.clearHeldItem();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue