mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-14 09:46:53 -04:00
Don't consume XP items when upgrade is at max level. Closes #2035.
This commit is contained in:
parent
feb886b9f7
commit
4dccd26b04
@ -24,6 +24,8 @@ import scala.collection.convert.WrapAsJava._
|
|||||||
import scala.collection.convert.WrapAsScala._
|
import scala.collection.convert.WrapAsScala._
|
||||||
|
|
||||||
class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends prefab.ManagedEnvironment with DeviceInfo {
|
class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends prefab.ManagedEnvironment with DeviceInfo {
|
||||||
|
final val MaxLevel = 30
|
||||||
|
|
||||||
override val node = api.Network.newNode(this, Visibility.Network).
|
override val node = api.Network.newNode(this, Visibility.Network).
|
||||||
withComponent("experience").
|
withComponent("experience").
|
||||||
withConnector(30 * Settings.get.bufferPerLevel).
|
withConnector(30 * Settings.get.bufferPerLevel).
|
||||||
@ -50,7 +52,7 @@ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends p
|
|||||||
def xpForNextLevel = xpForLevel(level + 1)
|
def xpForNextLevel = xpForLevel(level + 1)
|
||||||
|
|
||||||
def addExperience(value: Double) {
|
def addExperience(value: Double) {
|
||||||
if (level < 30) {
|
if (level < MaxLevel) {
|
||||||
experience = experience + value
|
experience = experience + value
|
||||||
if (experience >= xpForNextLevel) {
|
if (experience >= xpForNextLevel) {
|
||||||
updateXpInfo()
|
updateXpInfo()
|
||||||
@ -76,6 +78,9 @@ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends p
|
|||||||
|
|
||||||
@Callback(doc = """function():boolean -- Tries to consume an enchanted item to add experience to the upgrade.""")
|
@Callback(doc = """function():boolean -- Tries to consume an enchanted item to add experience to the upgrade.""")
|
||||||
def consume(context: Context, args: Arguments): Array[AnyRef] = {
|
def consume(context: Context, args: Arguments): Array[AnyRef] = {
|
||||||
|
if (level >= MaxLevel) {
|
||||||
|
return result(Unit, "max level")
|
||||||
|
}
|
||||||
val stack = host.mainInventory.getStackInSlot(host.selectedSlot)
|
val stack = host.mainInventory.getStackInSlot(host.selectedSlot)
|
||||||
if (stack == null || stack.stackSize < 1) {
|
if (stack == null || stack.stackSize < 1) {
|
||||||
return result(Unit, "no item")
|
return result(Unit, "no item")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user