mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-01-25 08:22:53 +08:00
Make UI for blueprint unlocking behave.
This commit is contained in:
parent
4309e96253
commit
a8d972c0c0
@ -48,11 +48,15 @@ public class ForgingManager {
|
|||||||
// Determine the forging item we should unlock.
|
// Determine the forging item we should unlock.
|
||||||
int forgeId = Integer.parseInt(blueprintItem.getItemData().getItemUse().get(0).getUseParam().get(0));
|
int forgeId = Integer.parseInt(blueprintItem.getItemData().getItemUse().get(0).getUseParam().get(0));
|
||||||
|
|
||||||
// Tell the client that this blueprint is now unlocked and add the unlocked item to the player.
|
// Remove the blueprint from the player's inventory.
|
||||||
this.player.sendPacket(new PacketForgeFormulaDataNotify(forgeId));
|
// We need to do this here, before sending ForgeFormulaDataNotify, or the the forging UI won't correctly
|
||||||
this.player.getUnlockedForgingBlueprints().add(forgeId);
|
// update when unlocking the blueprint.
|
||||||
|
player.getInventory().removeItem(blueprintItem, 1);
|
||||||
|
|
||||||
|
// Tell the client that this blueprint is now unlocked and add the unlocked item to the player.
|
||||||
|
this.player.getUnlockedForgingBlueprints().add(forgeId);
|
||||||
|
this.player.sendPacket(new PacketForgeFormulaDataNotify(forgeId));
|
||||||
|
|
||||||
// Done.
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -822,6 +822,7 @@ public class InventoryManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int used = 0;
|
int used = 0;
|
||||||
|
boolean useSuccess = false;
|
||||||
|
|
||||||
// Use
|
// Use
|
||||||
switch (useItem.getItemData().getMaterialType()) {
|
switch (useItem.getItemData().getMaterialType()) {
|
||||||
@ -853,12 +854,7 @@ public class InventoryManager {
|
|||||||
// Handle forging blueprints.
|
// Handle forging blueprints.
|
||||||
if (useItem.getItemData().getItemUse().get(0).getUseOp().equals("ITEM_USE_UNLOCK_FORGE")) {
|
if (useItem.getItemData().getItemUse().get(0).getUseOp().equals("ITEM_USE_UNLOCK_FORGE")) {
|
||||||
// Unlock.
|
// Unlock.
|
||||||
boolean success = player.getForgingManager().unlockForgingBlueprint(useItem);
|
useSuccess = player.getForgingManager().unlockForgingBlueprint(useItem);
|
||||||
|
|
||||||
// Use up the blueprint item if successful.
|
|
||||||
if (success) {
|
|
||||||
used = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MATERIAL_CHEST:
|
case MATERIAL_CHEST:
|
||||||
@ -925,10 +921,15 @@ public class InventoryManager {
|
|||||||
used = 1;
|
used = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we used at least one item, or one of the methods called here reports using the item successfully,
|
||||||
|
// we return the item to make UseItemRsp a success.
|
||||||
if (used > 0) {
|
if (used > 0) {
|
||||||
player.getInventory().removeItem(useItem, used);
|
player.getInventory().removeItem(useItem, used);
|
||||||
return useItem;
|
return useItem;
|
||||||
}
|
}
|
||||||
|
if (useSuccess) {
|
||||||
|
return useItem;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user