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.client.server.IntegratedServer
import net.minecraft.server.MinecraftServer import net.minecraft.server.MinecraftServer
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import net.minecraftforge.api.distmarker.Dist import net.minecraftforge.api.distmarker.Dist
import net.minecraftforge.event.TickEvent import net.minecraftforge.event.TickEvent
@ -164,11 +163,11 @@ fun onWorldTick(event: LevelTickEvent) {
} }
fun onceServerPre(ticker: ITickable) { 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) { 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) { fun tickServerPre(ticker: IConditionalTickable) {
@ -203,7 +202,7 @@ fun Level.once(ticker: ITickable) {
return return
} }
postWorldTick.computeIfAbsent(this) { TickList() }.add(ticker) postWorldTick.computeIfAbsent(this) { TickList() }.once(ticker)
} }
fun Level.oncePre(ticker: ITickable) { fun Level.oncePre(ticker: ITickable) {
@ -214,7 +213,7 @@ fun Level.oncePre(ticker: ITickable) {
return return
} }
preWorldTick.computeIfAbsent(this) { TickList() }.add(ticker) preWorldTick.computeIfAbsent(this) { TickList() }.once(ticker)
} }
fun Level.addTicker(ticker: IConditionalTickable) { fun Level.addTicker(ticker: IConditionalTickable) {

View File

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

View File

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