Delay advancement granting by one tick

This commit is contained in:
DBotThePony 2023-08-05 00:02:36 +07:00
parent 5c3f0e54c1
commit 75b7614fdf
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -212,8 +212,10 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
access.write(value)
if (value && ply is ServerPlayer) {
tickList.once {
ExopackObtainedTrigger.trigger(ply)
}
}
}).property
/**
@ -326,9 +328,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
_exoPackMenu = null
if (value && ply is ServerPlayer) {
tickList.once {
ExopackGainedCraftingTrigger.trigger(ply)
}
}
}
}).property
var isExopackEnderAccessInstalled by publicSynchronizer.bool(setter = setter@{ value, access, _ ->
@ -337,9 +341,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
_exoPackMenu = null
if (value && ply is ServerPlayer) {
tickList.once {
ExopackGainedEnderAccessTrigger.trigger(ply)
}
}
}
}).property
private var _exoPackMenu: ExopackInventoryMenu? = null
@ -443,9 +449,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
_exoPackMenu = null
if (value && ply is ServerPlayer) {
tickList.once {
ExopackGainedSmeltingTrigger.trigger(ply)
}
}
}
}).property
inner class SmelterBelt(index: Int) : MachineJobEventLoop<ItemJob>(ItemJob.CODEC) {
@ -609,9 +617,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
wasInLiquid = false
if (ply is ServerPlayer) {
tickList.once {
BecomeAndroidTrigger.trigger(ply)
}
}
}
/**
* [becomeAndroid] plus instantly kills the player
@ -662,8 +672,10 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
wasInLiquid = false
if (ply is ServerPlayer) {
tickList.once {
BecomeHumaneTrigger.trigger(ply)
}
}
for (feature in featureMap.values) {
feature.removeModifiers()
@ -928,7 +940,9 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
}
if (ply is ServerPlayer && hasExopack)
tickList.once {
ExopackSlotsExpandedTrigger.trigger(ply, 0, exopackContainer.containerSize)
}
for (filter in regularSlotFilters) {
filter.value = null
@ -998,7 +1012,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
this.research[research] = instance
if (instance.isResearched && ply is ServerPlayer) {
tickList.timer(20) {
tickList.once {
if (!ply.hasDisconnected())
AndroidResearchTrigger.trigger(ply, instance.type)
}
@ -1007,7 +1021,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
}
if (isAndroid && ply is ServerPlayer) {
tickList.timer(20) {
tickList.once {
if (!ply.hasDisconnected())
BecomeAndroidTrigger.trigger(ply)
}