бакпорт изменений curios под смачный пердёж

This commit is contained in:
YuRaNnNzZZ 2023-06-09 21:51:08 +03:00
parent b97e18ca5f
commit 1cbf73cdfd
Signed by: YuRaNnNzZZ
GPG Key ID: 5F71738C85A6006D
5 changed files with 31 additions and 9 deletions

View File

@ -321,7 +321,6 @@ repositories {
url = uri("https://maven.dbotthepony.ru") url = uri("https://maven.dbotthepony.ru")
content { content {
includeGroup("top.theillusivec4.curios")
includeGroup("yalter.mousetweaks") includeGroup("yalter.mousetweaks")
includeGroup("mekanism") includeGroup("mekanism")
includeGroup("lain.mods.cos") includeGroup("lain.mods.cos")
@ -357,6 +356,14 @@ repositories {
} }
} }
maven {
url = uri("https://maven.theillusivec4.top/")
content {
includeGroup("top.theillusivec4.curios")
}
}
// mavenCentral() // mavenCentral()
} }

View File

@ -19,7 +19,7 @@ mixin_version=0.8.5
jei_version=11.3.0.262 jei_version=11.3.0.262
jupiter_version=5.8.2 jupiter_version=5.8.2
mekanism_version=10.3.5.homebaked mekanism_version=10.3.5.homebaked
curios_version=5.1.1.0 curios_version=5.1.4.1
cosmetic_armor_reworked_version=v1 cosmetic_armor_reworked_version=v1
jade_id=4010505 jade_id=4010505
configured_id=4011355 configured_id=4011355

View File

@ -34,6 +34,7 @@ import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel;
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel; import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel;
import ru.dbotthepony.mc.otm.client.render.ShockwaveRenderer; import ru.dbotthepony.mc.otm.client.render.ShockwaveRenderer;
import ru.dbotthepony.mc.otm.client.render.WidgetAtlasHolder; import ru.dbotthepony.mc.otm.client.render.WidgetAtlasHolder;
import ru.dbotthepony.mc.otm.compat.curios.CuriosCompatKt;
import ru.dbotthepony.mc.otm.compat.mekanism.QIOKt; import ru.dbotthepony.mc.otm.compat.mekanism.QIOKt;
import ru.dbotthepony.mc.otm.compat.mekanism.TooltipsKt; import ru.dbotthepony.mc.otm.compat.mekanism.TooltipsKt;
import ru.dbotthepony.mc.otm.core.Decimal; import ru.dbotthepony.mc.otm.core.Decimal;
@ -197,6 +198,10 @@ public final class OverdriveThatMatters {
EVENT_BUS.addGenericListener(BlockEntity.class, EventPriority.NORMAL, QIOKt::attachCapabilities); EVENT_BUS.addGenericListener(BlockEntity.class, EventPriority.NORMAL, QIOKt::attachCapabilities);
} }
if (ModList.get().isLoaded("curios")) {
EVENT_BUS.addListener(EventPriority.NORMAL, CuriosCompatKt::onCuriosSlotModifiersUpdated);
}
OreGen.INSTANCE.register(); OreGen.INSTANCE.register();
} }

View File

@ -165,6 +165,10 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
return _exoPackMenu!! return _exoPackMenu!!
} }
fun recreateExoPackMenu() {
_exoPackMenu = ExoPackInventoryMenu(this)
}
private var shouldSendIteration = false private var shouldSendIteration = false
var iteration = 0 var iteration = 0
private set private set

View File

@ -6,20 +6,26 @@ import net.minecraft.world.inventory.Slot
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraftforge.fml.ModList import net.minecraftforge.fml.ModList
import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.MatteryCapability
import ru.dbotthepony.mc.otm.capability.matteryPlayer
import ru.dbotthepony.mc.otm.container.awareStream import ru.dbotthepony.mc.otm.container.awareStream
import ru.dbotthepony.mc.otm.container.stream import ru.dbotthepony.mc.otm.container.stream
import ru.dbotthepony.mc.otm.core.AwareItemStack import ru.dbotthepony.mc.otm.core.AwareItemStack
import ru.dbotthepony.mc.otm.core.orNull import ru.dbotthepony.mc.otm.core.orNull
import top.theillusivec4.curios.api.CuriosApi import top.theillusivec4.curios.api.CuriosApi
import top.theillusivec4.curios.api.event.SlotModifiersUpdatedEvent
import top.theillusivec4.curios.common.inventory.CosmeticCurioSlot import top.theillusivec4.curios.common.inventory.CosmeticCurioSlot
import top.theillusivec4.curios.common.inventory.CurioSlot import top.theillusivec4.curios.common.inventory.CurioSlot
import java.util.*
import java.util.stream.Stream import java.util.stream.Stream
val isCuriosLoaded by lazy { val isCuriosLoaded by lazy {
ModList.get().isLoaded(CuriosApi.MODID) ModList.get().isLoaded(CuriosApi.MODID)
} }
fun onCuriosSlotModifiersUpdated(event: SlotModifiersUpdatedEvent) {
check(isCuriosLoaded) { "Curios is not loaded!" }
event.entity.matteryPlayer?.recreateExoPackMenu()
}
private fun Player.getCuriosSlotsImpl(): Collection<Pair<Slot, Slot?>> { private fun Player.getCuriosSlotsImpl(): Collection<Pair<Slot, Slot?>> {
val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return listOf() val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return listOf()
@ -28,9 +34,9 @@ private fun Player.getCuriosSlotsImpl(): Collection<Pair<Slot, Slot?>> {
val sortedIdentifiers = ArrayList<String>(handler.curios.keys.size) val sortedIdentifiers = ArrayList<String>(handler.curios.keys.size)
sortedIdentifiers.addAll(handler.curios.keys) sortedIdentifiers.addAll(handler.curios.keys)
if (handler.curios !is LinkedHashMap) { //if (handler.curios !is LinkedHashMap) {
sortedIdentifiers.sort() // sortedIdentifiers.sort()
} //}
for (identifier in sortedIdentifiers) { for (identifier in sortedIdentifiers) {
val curio = handler.curios[identifier]!! val curio = handler.curios[identifier]!!
@ -69,7 +75,7 @@ val Player.curiosSlots: Collection<Pair<Slot, Slot?>> get() {
private fun Player.curiosStreamImpl(includeCosmetics: Boolean): Stream<out ItemStack> { private fun Player.curiosStreamImpl(includeCosmetics: Boolean): Stream<out ItemStack> {
val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return Stream.empty() val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return Stream.empty()
val result = LinkedList<Stream<out ItemStack>>() val result = ArrayList<Stream<out ItemStack>>()
for ((identifier, curio) in handler.curios) { for ((identifier, curio) in handler.curios) {
result.add(curio.stacks.stream()) result.add(curio.stacks.stream())
@ -79,7 +85,7 @@ private fun Player.curiosStreamImpl(includeCosmetics: Boolean): Stream<out ItemS
} }
} }
return Streams.concat(*result.toTypedArray()) return result.stream().flatMap { it }
} }
fun Player.curiosStream(includeCosmetics: Boolean = true): Stream<out ItemStack> { fun Player.curiosStream(includeCosmetics: Boolean = true): Stream<out ItemStack> {
@ -93,7 +99,7 @@ fun Player.curiosStream(includeCosmetics: Boolean = true): Stream<out ItemStack>
private fun Player.curiosAwareStreamImpl(includeCosmetics: Boolean): Stream<out AwareItemStack> { private fun Player.curiosAwareStreamImpl(includeCosmetics: Boolean): Stream<out AwareItemStack> {
val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return Stream.empty() val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return Stream.empty()
val result = LinkedList<Stream<out AwareItemStack>>() val result = ArrayList<Stream<out AwareItemStack>>()
for ((identifier, curio) in handler.curios) { for ((identifier, curio) in handler.curios) {
result.add(curio.stacks.awareStream()) result.add(curio.stacks.awareStream())