Add -> Once
This commit is contained in:
parent
fed79e273b
commit
6fa598d5fc
@ -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) {
|
||||||
|
@ -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) {
|
||||||
|
@ -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))
|
||||||
|
Loading…
Reference in New Issue
Block a user