InternalContainerUtilTag class
Пакет: com.hypixel.hytale.server.core.inventory.container
Файл: com/hypixel/hytale/server/core/inventory/container/InternalContainerUtilTag.java
Поля (28)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var10 |
|
List |
var10 |
|
int |
var11 |
|
int |
var12 |
|
ItemStack |
var13 |
|
ItemStack |
var14 |
|
ItemStack |
var16 |
|
long |
var3 |
|
TestRemoveItemSlotResult |
var4 |
|
ItemStack |
var4 |
|
ItemStack |
var5 |
|
ItemStack |
var5 |
|
AssetExtraInfo.Data |
var5 |
|
int |
var6 |
|
int |
var6 |
|
AssetExtraInfo.Data |
var6 |
|
ItemStack |
var6 |
|
Item |
var6 |
|
ItemStack |
var7 |
|
int |
var7 |
|
|
var7 |
|
int |
var7 |
|
AssetExtraInfo.Data |
var7 |
|
int |
var7 |
|
Item |
var8 |
|
int |
var8 |
|
int |
var9 |
|
TagSlotTransaction |
var9 |
Методы (18)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
TagSlotTransactionreturn new TagSlotTransaction(false, ActionType.REMOVE, var1, var16, var16, null, var4, false, var5, var2, var3) |
abstract |
return new |
TagSlotTransactionreturn new TagSlotTransaction(false, ActionType.REMOVE, var1, null, null, null, var4, false, var5, var2, var3) |
abstract |
return new |
TagSlotTransactionreturn new TagSlotTransaction(false, ActionType.REMOVE, var1, var7, var7, null, var4, false, var5, var2, var3) |
abstract |
return new |
TagSlotTransactionreturn new TagSlotTransaction(true, ActionType.REMOVE, var1, var7, var13, var14, var4, false, var5, var2, var6) |
abstract |
return new |
TagTransactionreturn new TagTransaction(true, ActionType.REMOVE, var1, var7, var3, var4, var5, var10) |
static |
int |
countTagFromItemsint countTagFromItems(@Nonnull ItemContainer var0, int var1, boolean var2) |
static |
int |
countTagFromSlotint countTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, boolean var3) |
abstract |
|
for for(short var5 = 0; var5 < var0.getCapacity() |
|
|
if if(var7 == null) |
|
|
if if(var4 && var6 > 0) |
|
|
if if(var3 || var4) |
|
|
if if(var6 > 0) |
|
|
if if(var4 && var6 < 0) |
static |
TagTransaction |
internal_removeTagTagTransaction internal_removeTag(@Nonnull ItemContainer var0, int var1, int var2, boolean var3, boolean var4, boolean var5) |
static |
TagSlotTransaction |
internal_removeTagFromSlotTagSlotTransaction internal_removeTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4, boolean var5) |
static |
int |
testRemoveTagFromItemsint testRemoveTagFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3) |
static |
int |
testRemoveTagFromSlotint testRemoveTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4) |
static |
TestRemoveItemSlotResult |
testRemoveTagSlotFromItemsTestRemoveItemSlotResult testRemoveTagSlotFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.inventory.container;
class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.ActionType;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.TagSlotTransaction;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.TagTransaction;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">public class InternalContainerUtilTag {
class="kw">public InternalContainerUtilTag() {
}
class="kw">protected class="kw">static TagSlotTransaction internal_removeTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4, boolean var5) {
ItemContainer.validateSlotIndex(var1, var0.getCapacity());
ItemContainer.validateQuantity(var3);
class="kw">return var0.writeAction(() -> {
int var6 = var3;
if (var5 && var0.cantRemoveFromSlot(var1)) {
ItemStack var16 = var0.internal_getSlot(var1);
class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, var16, var16, null, var4, false, var5, var2, var3);
}
ItemStack var7 = var0.internal_getSlot(var1);
if (var7 == null) {
class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, null, null, null, var4, false, var5, var2, var3);
}
Item var8 = var7.getItem();
int var9 = var7.getQuantity();
if (var8.getData() != null && var8.getData().getExpandedTagIndexes().contains(var2)) {
int var10 = var6;
int var11 = Math.min(var9, var10);
int var12 = var9 - var11;
var6 -= var11;
if (var4 && var6 > 0) {
class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, var7, var7, null, var4, false, var5, var2, var3);
}
ItemStack var13 = var7.withQuantity(var12);
var0.internal_setSlot(var1, var13);
ItemStack var14 = var7.withQuantity(var11);
class="kw">return new TagSlotTransaction(true, ActionType.REMOVE, var1, var7, var13, var14, var4, false, var5, var2, var6);
} else {
class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, var7, var7, null, var4, false, var5, var2, var3);
}
});
}
class="kw">protected class="kw">static TagTransaction internal_removeTag(@Nonnull ItemContainer var0, int var1, int var2, boolean var3, boolean var4, boolean var5) {
class="kw">return var0.writeAction(() -> {
if (var3 || var4) {
int var6 = testRemoveTagFromItems(var0, var1, var2, var5);
if (var6 > 0) {
class="kw">return new TagTransaction(false, ActionType.REMOVE, var1, var2, var3, var4, var5, Collections.emptyList());
}
if (var4 && var6 < 0) {
class="kw">return new TagTransaction(false, ActionType.REMOVE, var1, var2, var3, var4, var5, Collections.emptyList());
}
}
List var10 = new ObjectArrayList();
int var7 = var2;
for (short var8 = 0; var8 < var0.getCapacity() && var7 > 0; var8++) {
TagSlotTransaction var9 = internal_removeTagFromSlot(var0, var8, var1, var7, var3, var5);
var10.add(var9);
var7 = var9.getRemainder();
}
class="kw">return new TagTransaction(true, ActionType.REMOVE, var1, var7, var3, var4, var5, var10);
});
}
class="kw">protected class="kw">static int testRemoveTagFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3) {
for (short var4 = 0; var4 < var0.getCapacity() && var2 > 0; var4++) {
if (!var3 || !var0.cantRemoveFromSlot(var4)) {
ItemStack var5 = var0.internal_getSlot(var4);
if (!ItemStack.isEmpty(var5)) {
AssetExtraInfo.Data var6 = var5.getItem().getData();
if (var6 != null && var6.getExpandedTagIndexes().contains(var1)) {
int var7 = var5.getQuantity();
var2 -= Math.min(var7, var2);
}
}
}
}
class="kw">return var2;
}
class="kw">protected class="kw">static TestRemoveItemSlotResult testRemoveTagSlotFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3) {
TestRemoveItemSlotResult var4 = new TestRemoveItemSlotResult(var2);
for (short var5 = 0; var5 < var0.getCapacity() && var4.quantityRemaining > 0; var5++) {
if (!var3 || !var0.cantRemoveFromSlot(var5)) {
ItemStack var6 = var0.internal_getSlot(var5);
if (!ItemStack.isEmpty(var6)) {
AssetExtraInfo.Data var7 = var6.getItem().getData();
if (var7 != null && var7.getExpandedTagIndexes().contains(var1)) {
int var8 = var6.getQuantity();
var4.quantityRemaining = var4.quantityRemaining - Math.min(var8, var4.quantityRemaining);
}
}
}
}
class="kw">return var4;
}
class="kw">protected class="kw">static int testRemoveTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4) {
if (var4 && var0.cantRemoveFromSlot(var1)) {
class="kw">return var3;
}
ItemStack var5 = var0.internal_getSlot(var1);
if (ItemStack.isEmpty(var5)) {
class="kw">return var3;
}
Item var6 = var5.getItem();
if (!var6.getData().getExpandedTagIndexes().contains(var2)) {
class="kw">return var3;
}
int var7 = var5.getQuantity();
class="kw">return var3 - Math.min(var7, var3);
}
class="kw">protected class="kw">static int countTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, boolean var3) {
if (var3 && var0.cantRemoveFromSlot(var1)) {
class="kw">return 0;
}
ItemStack var4 = var0.internal_getSlot(var1);
if (ItemStack.isEmpty(var4)) {
class="kw">return 0;
}
AssetExtraInfo.Data var5 = var4.getItem().getData();
class="kw">return var5 != null && var5.getExpandedTagIndexes().contains(var2) ? var4.getQuantity() : 0;
}
class="kw">protected class="kw">static int countTagFromItems(@Nonnull ItemContainer var0, int var1, boolean var2) {
long var3 = 0L;
for (short var5 = 0; var5 < var0.getCapacity(); var5++) {
var3 += countTagFromSlot(var0, var5, var1, var2);
}
class="kw">return (int)Math.min(var3, 2147483647L);
}
}