Resource.hash refactored

This commit is contained in:
2024-03-11 17:10:34 -04:00
parent ef38e93c11
commit 0b68ae3960
4 changed files with 59 additions and 63 deletions
-13
View File
@@ -30,7 +30,6 @@ public class ItemBase {
public final int uuid;
private final int modTable;
private int hashID;
private final short percentRequired;
private final short defense;
private final float dexPenalty;
@@ -47,8 +46,6 @@ public class ItemBase {
this.uuid = rs.getInt("ID");
this.modTable = rs.getInt("modTable");
this.hashID = rs.getInt("itemHashID");
this.isConsumable = false;
this.percentRequired = rs.getShort("percentRequired");
this.defense = rs.getShort("defense");
@@ -82,7 +79,6 @@ public class ItemBase {
this.isConsumable = true;
break;
}
initializeHashes();
}
@@ -149,19 +145,10 @@ public class ItemBase {
return ID > 7000099 && ID < 7000281;
}
public final void initializeHashes() {
itemHashIDMap.put(this.hashID, uuid);
}
public int getModTable() {
return modTable;
}
public int getHashID() {
return hashID;
}
public final int getUUID() {
return uuid;
}
+20 -20
View File
@@ -213,22 +213,18 @@ public class Warehouse extends AbstractWorldObject {
if (wh == null)
return;
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
ItemBase ib = ItemBase.getItemBase(itemBaseID);
Enum.ResourceType resourceType = Enum.ResourceType.hashLookup.get(hashID);
if (ib == null)
return;
if (isResourceLocked(wh, ib)) {
if (isResourceLocked(wh, ItemBase.getItemBase(resourceType.templateID))) {
boolean worked;
EnumBitSet<Enum.ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), Enum.ResourceType.class);
bitSet.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
bitSet.remove(Enum.ResourceType.resourceLookup.get(ItemBase.getItemBase(resourceType.templateID)));
worked = DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong());
if (worked) {
wh.lockedResourceTypes.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
wh.lockedResourceTypes.remove(Enum.ResourceType.resourceLookup.get(ItemBase.getItemBase(resourceType.templateID)));
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
vrm.setGuild(player.getGuild());
vrm.setWarehouseBuilding(warehouse);
@@ -241,12 +237,12 @@ public class Warehouse extends AbstractWorldObject {
EnumBitSet<Enum.ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), Enum.ResourceType.class);
bitSet.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
bitSet.add(Enum.ResourceType.resourceLookup.get(ItemBase.getItemBase(resourceType.templateID)));
if (!DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong()))
return;
wh.lockedResourceTypes.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
wh.lockedResourceTypes.add(Enum.ResourceType.resourceLookup.get(ItemBase.getItemBase(resourceType.templateID)));
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
vrm.setGuild(player.getGuild());
vrm.setWarehouseBuilding(warehouse);
@@ -538,7 +534,8 @@ public class Warehouse extends AbstractWorldObject {
if (oldAmount < amount)
return false;
int hashID = ib.getHashID();
Enum.ResourceType resourceType = Enum.ResourceType.resourceLookup.get(ib.getUUID());
int hashID = resourceType.hash;
int newAmount = oldAmount - amount;
boolean worked = false;
@@ -658,7 +655,8 @@ public class Warehouse extends AbstractWorldObject {
int amount = (int) (warehouse.resources.get(ib) * taxPercent);
if (amount <= 0) {
msg.getResources().put(ib.getHashID(), 0);
Enum.ResourceType resourceType = Enum.ResourceType.resourceLookup.get(ib.getUUID());
msg.getResources().put(resourceType.hash, 0);
continue;
}
@@ -672,23 +670,25 @@ public class Warehouse extends AbstractWorldObject {
if (newAmount < amount)
continue;
if (!WithdrawApproved(ib,amount,warehouse)) {
msg.getResources().put(ib.getHashID(), 0);
Enum.ResourceType resourceType = Enum.ResourceType.resourceLookup.get(ib.getUUID());
if (!WithdrawApproved(ib, amount, warehouse)) {
msg.getResources().put(resourceType.hash, 0);
continue;
}
msg.getResources().put(ib.getHashID(), amount);
msg.getResources().put(resourceType.hash, amount);
warehouse.resources.put(ib, newAmount);
depositRealmTaxes(taxer, ib, amount, warehouse);
Resource resourceType;
Resource resource;
if (ib.getUUID() == 7)
resourceType = Resource.GOLD;
if (resourceType.equals(Enum.ResourceType.GOLD))
resource = Resource.GOLD;
else
resourceType = Resource.valueOf(template.item_base_name.toUpperCase());
resource = Resource.valueOf(template.item_base_name.toUpperCase());
AddTransactionToWarehouse(warehouse, taxer.getObjectType(), taxer.getObjectUUID(), Enum.TransactionType.TAXRESOURCE, resourceType, amount);
AddTransactionToWarehouse(warehouse, taxer.getObjectType(), taxer.getObjectUUID(), Enum.TransactionType.TAXRESOURCE, resource, amount);
}
}