Add -> Once

This commit is contained in:
DBotThePony 2023-03-03 07:57:24 +07:00
parent fed79e273b
commit 6fa598d5fc
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 9 additions and 10 deletions

View File

@ -5,7 +5,6 @@ package ru.dbotthepony.mc.otm
import net.minecraft.client.server.IntegratedServer
import net.minecraft.server.MinecraftServer
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.level.Level
import net.minecraftforge.api.distmarker.Dist
import net.minecraftforge.event.TickEvent
@ -164,11 +163,11 @@ fun onWorldTick(event: LevelTickEvent) {
}
fun onceServerPre(ticker: ITickable) {
preServerTick.add(ticker, SERVER_IS_LIVE, "Server is stopping")
preServerTick.once(ticker, SERVER_IS_LIVE, "Server is stopping")
}
fun onceServer(ticker: ITickable) {
postServerTick.add(ticker, SERVER_IS_LIVE, "Server is stopping")
postServerTick.once(ticker, SERVER_IS_LIVE, "Server is stopping")
}
fun tickServerPre(ticker: IConditionalTickable) {
@ -203,7 +202,7 @@ fun Level.once(ticker: ITickable) {
return
}
postWorldTick.computeIfAbsent(this) { TickList() }.add(ticker)
postWorldTick.computeIfAbsent(this) { TickList() }.once(ticker)
}
fun Level.oncePre(ticker: ITickable) {
@ -214,7 +213,7 @@ fun Level.oncePre(ticker: ITickable) {
return
}
preWorldTick.computeIfAbsent(this) { TickList() }.add(ticker)
preWorldTick.computeIfAbsent(this) { TickList() }.once(ticker)
}
fun Level.addTicker(ticker: IConditionalTickable) {

View File

@ -17,12 +17,12 @@ var LOGGED_IN = false
fun onceClient(ticker: ITickable) {
check(isClient) { "Illegal side" }
postTickList.add(ticker, LOGGED_IN, "Not logged in")
postTickList.once(ticker, LOGGED_IN, "Not logged in")
}
fun onceClientPre(ticker: ITickable) {
check(isClient) { "Illegal side" }
preTickList.add(ticker, LOGGED_IN, "Not logged in")
preTickList.once(ticker, LOGGED_IN, "Not logged in")
}
fun onceClient(inTicks: Int, ticker: Runnable) {

View File

@ -21,7 +21,7 @@ class TickList {
}
}
fun add(ticker: ITickable) {
fun once(ticker: ITickable) {
if (inTicker) {
onceValveTime.add(ticker)
} else {
@ -46,13 +46,13 @@ class TickList {
return add(ticker)
}
fun add(ticker: ITickable, condition: Boolean, reason: String) {
fun once(ticker: ITickable, condition: Boolean, reason: String) {
if (!condition) {
LOGGER.error("Refusing to add tickable $ticker because we $reason", IllegalStateException(reason))
return
}
return add(ticker)
return once(ticker)
}
fun until(ticker: () -> Boolean) = add(IConditionalTickable.wrap(ticker))