Compare commits
3 Commits
60429c35b2
...
af0cc383e5
Author | SHA1 | Date | |
---|---|---|---|
af0cc383e5 | |||
5af896e476 | |||
0446e5adb3 |
@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.capability.fluid
|
|||||||
|
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.neoforged.neoforge.fluids.FluidStack
|
import net.neoforged.neoforge.fluids.FluidStack
|
||||||
|
import net.neoforged.neoforge.fluids.SimpleFluidContent
|
||||||
import net.neoforged.neoforge.fluids.capability.IFluidHandler
|
import net.neoforged.neoforge.fluids.capability.IFluidHandler
|
||||||
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem
|
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem
|
||||||
import ru.dbotthepony.mc.otm.registry.MDataComponentTypes
|
import ru.dbotthepony.mc.otm.registry.MDataComponentTypes
|
||||||
@ -12,8 +13,8 @@ import java.util.function.IntSupplier
|
|||||||
*/
|
*/
|
||||||
open class ItemMatteryFluidHandler(val itemStack: ItemStack, private val _capacity: IntSupplier) : AbstractMatteryFluidHandler(), IFluidHandlerItem {
|
open class ItemMatteryFluidHandler(val itemStack: ItemStack, private val _capacity: IntSupplier) : AbstractMatteryFluidHandler(), IFluidHandlerItem {
|
||||||
override var fluid: FluidStack
|
override var fluid: FluidStack
|
||||||
get() = itemStack[MDataComponentTypes.FLUID_STACK] ?: FluidStack.EMPTY
|
get() = (itemStack[MDataComponentTypes.FLUID_STACK] ?: SimpleFluidContent.EMPTY).copy()
|
||||||
set(value) { itemStack[MDataComponentTypes.FLUID_STACK] = value }
|
set(value) { itemStack[MDataComponentTypes.FLUID_STACK] = SimpleFluidContent.copyOf(value) }
|
||||||
|
|
||||||
final override val capacity: Int
|
final override val capacity: Int
|
||||||
get() = _capacity.asInt
|
get() = _capacity.asInt
|
||||||
|
@ -312,7 +312,7 @@ class QuantumBatteryItem(val savedataID: String, val balanceValues: EnergyBalanc
|
|||||||
components.add(TranslatableComponent("otm.item.quantum_battery.creative2").withStyle(ChatFormatting.DARK_GRAY))
|
components.add(TranslatableComponent("otm.item.quantum_battery.creative2").withStyle(ChatFormatting.DARK_GRAY))
|
||||||
}
|
}
|
||||||
|
|
||||||
components.add(TranslatableComponent("otm.item.quantum_link_id", power.values.uuid).withStyle(ChatFormatting.DARK_GRAY))
|
components.add(TranslatableComponent("otm.item.quantum_link_id", power.values.uuid.toString()).withStyle(ChatFormatting.DARK_GRAY))
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.item.matter
|
package ru.dbotthepony.mc.otm.item.matter
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
@ -119,7 +120,7 @@ class PatternStorageItem : Item, CapabilitiesRegisterListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
patterns[i] = pattern
|
patterns[i] = pattern
|
||||||
stack[MDataComponentTypes.PATTERNS] = patterns
|
stack[MDataComponentTypes.PATTERNS] = ImmutableList.copyOf(patterns)
|
||||||
return PatternInsertUpdated(pattern, ePattern)
|
return PatternInsertUpdated(pattern, ePattern)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,7 +130,7 @@ class PatternStorageItem : Item, CapabilitiesRegisterListener {
|
|||||||
|
|
||||||
if (!simulate) {
|
if (!simulate) {
|
||||||
patterns.add(pattern)
|
patterns.add(pattern)
|
||||||
stack[MDataComponentTypes.PATTERNS] = patterns
|
stack[MDataComponentTypes.PATTERNS] = ImmutableList.copyOf(patterns)
|
||||||
}
|
}
|
||||||
|
|
||||||
return PatternInsertInserted(pattern)
|
return PatternInsertInserted(pattern)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList
|
||||||
import com.mojang.serialization.Codec
|
import com.mojang.serialization.Codec
|
||||||
import net.minecraft.core.UUIDUtil
|
import net.minecraft.core.UUIDUtil
|
||||||
import net.minecraft.core.component.DataComponentType
|
import net.minecraft.core.component.DataComponentType
|
||||||
@ -8,6 +9,7 @@ import net.minecraft.network.RegistryFriendlyByteBuf
|
|||||||
import net.minecraft.network.codec.StreamCodec
|
import net.minecraft.network.codec.StreamCodec
|
||||||
import net.neoforged.bus.api.IEventBus
|
import net.neoforged.bus.api.IEventBus
|
||||||
import net.neoforged.neoforge.fluids.FluidStack
|
import net.neoforged.neoforge.fluids.FluidStack
|
||||||
|
import net.neoforged.neoforge.fluids.SimpleFluidContent
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.PatternState
|
import ru.dbotthepony.mc.otm.capability.matter.PatternState
|
||||||
import ru.dbotthepony.mc.otm.container.ItemFilter
|
import ru.dbotthepony.mc.otm.container.ItemFilter
|
||||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||||
@ -30,13 +32,13 @@ object MDataComponentTypes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val FLUID_STACK by registry.register("fluid_stack") {
|
val FLUID_STACK by registry.register("fluid_stack") {
|
||||||
object : DataComponentType<FluidStack> {
|
object : DataComponentType<SimpleFluidContent> {
|
||||||
override fun codec(): Codec<FluidStack> {
|
override fun codec(): Codec<SimpleFluidContent> {
|
||||||
return FluidStack.OPTIONAL_CODEC
|
return SimpleFluidContent.CODEC
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun streamCodec(): StreamCodec<in RegistryFriendlyByteBuf, FluidStack> {
|
override fun streamCodec(): StreamCodec<in RegistryFriendlyByteBuf, SimpleFluidContent> {
|
||||||
return FluidStack.OPTIONAL_STREAM_CODEC
|
return SimpleFluidContent.STREAM_CODEC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,7 +55,10 @@ object MDataComponentTypes {
|
|||||||
val EXOPACK_UPGRADE_ID: DataComponentType<UUID> by registry.register("exopack_upgrade_id") { uuid() }
|
val EXOPACK_UPGRADE_ID: DataComponentType<UUID> by registry.register("exopack_upgrade_id") { uuid() }
|
||||||
val QUANTUM_LINK_ID: DataComponentType<UUID> by registry.register("quantum_link_id") { uuid() }
|
val QUANTUM_LINK_ID: DataComponentType<UUID> by registry.register("quantum_link_id") { uuid() }
|
||||||
val CONDENSATION_DRIVE_UUID: DataComponentType<UUID> by registry.register("condensation_drive_uuid") { uuid() }
|
val CONDENSATION_DRIVE_UUID: DataComponentType<UUID> by registry.register("condensation_drive_uuid") { uuid() }
|
||||||
val PATTERNS: DataComponentType<List<PatternState>> by registry.register("patterns") { DataComponentType.builder<List<PatternState>>().persistent(Codec.list(PatternState.CODEC)).build() }
|
val PATTERNS: DataComponentType<ImmutableList<PatternState>> by registry.register("patterns") {
|
||||||
|
DataComponentType.builder<ImmutableList<PatternState>>().persistent(Codec.list(PatternState.CODEC).xmap({ ImmutableList.copyOf(it) }, { it })).build()
|
||||||
|
}
|
||||||
|
|
||||||
val ITEM_FILTER: DataComponentType<ItemFilter> by registry.register("item_filter") { DataComponentType.builder<ItemFilter>().persistent(ItemFilter.CODEC).build() }
|
val ITEM_FILTER: DataComponentType<ItemFilter> by registry.register("item_filter") { DataComponentType.builder<ItemFilter>().persistent(ItemFilter.CODEC).build() }
|
||||||
|
|
||||||
val EXPERIENCE: DataComponentType<Long> by registry.register("experience") { DataComponentType.builder<Long>().persistent(Codec.LONG).networkSynchronized(StreamCodecs.LONG).build() }
|
val EXPERIENCE: DataComponentType<Long> by registry.register("experience") { DataComponentType.builder<Long>().persistent(Codec.LONG).networkSynchronized(StreamCodecs.LONG).build() }
|
||||||
|
@ -23,13 +23,10 @@ var isOwnPatches = [
|
|||||||
|
|
||||||
function patchMethod(node) {
|
function patchMethod(node) {
|
||||||
if (node.desc.endsWith('AbstractContainerMenu;')) {
|
if (node.desc.endsWith('AbstractContainerMenu;')) {
|
||||||
var threeRows = ASMAPI.mapMethod('m_39237_')
|
|
||||||
var sixRows = ASMAPI.mapMethod('m_39246_')
|
|
||||||
|
|
||||||
for (var i = 0; i < node.instructions.size(); i++) {
|
for (var i = 0; i < node.instructions.size(); i++) {
|
||||||
var instr = node.instructions.get(i)
|
var instr = node.instructions.get(i)
|
||||||
|
|
||||||
if (instr.getOpcode() == Opcodes.INVOKESTATIC && instr.name == threeRows && instr.owner == 'net/minecraft/world/inventory/ChestMenu') {
|
if (instr.getOpcode() == Opcodes.INVOKESTATIC && instr.name == 'threeRows' && instr.owner == 'net/minecraft/world/inventory/ChestMenu') {
|
||||||
node.instructions.set(instr, new MethodInsnNode(
|
node.instructions.set(instr, new MethodInsnNode(
|
||||||
Opcodes.INVOKESTATIC,
|
Opcodes.INVOKESTATIC,
|
||||||
'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu',
|
'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu',
|
||||||
@ -38,7 +35,7 @@ function patchMethod(node) {
|
|||||||
))
|
))
|
||||||
|
|
||||||
break
|
break
|
||||||
} else if (instr.getOpcode() == Opcodes.INVOKESTATIC && instr.name == sixRows && instr.owner == 'net/minecraft/world/inventory/ChestMenu') {
|
} else if (instr.getOpcode() == Opcodes.INVOKESTATIC && instr.name == 'sixRows' && instr.owner == 'net/minecraft/world/inventory/ChestMenu') {
|
||||||
node.instructions.set(instr, new MethodInsnNode(
|
node.instructions.set(instr, new MethodInsnNode(
|
||||||
Opcodes.INVOKESTATIC,
|
Opcodes.INVOKESTATIC,
|
||||||
'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu',
|
'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu',
|
||||||
@ -80,7 +77,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': clazz,
|
'class': clazz,
|
||||||
'methodName': ASMAPI.mapMethod('m_142718_'),
|
'methodName': 'isOwnContainer',
|
||||||
'methodDesc': '(Lnet/minecraft/world/entity/player/Player;)Z'
|
'methodDesc': '(Lnet/minecraft/world/entity/player/Player;)Z'
|
||||||
},
|
},
|
||||||
'transformer': function(node) {
|
'transformer': function(node) {
|
||||||
@ -89,7 +86,7 @@ function initializeCoreMod() {
|
|||||||
|
|
||||||
if ((instr.getOpcode() == Opcodes.INSTANCEOF || instr.getOpcode() == Opcodes.CHECKCAST) && instr.desc == 'net/minecraft/world/inventory/ChestMenu') {
|
if ((instr.getOpcode() == Opcodes.INSTANCEOF || instr.getOpcode() == Opcodes.CHECKCAST) && instr.desc == 'net/minecraft/world/inventory/ChestMenu') {
|
||||||
instr.desc = 'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu'
|
instr.desc = 'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu'
|
||||||
} else if (instr.getOpcode() == Opcodes.INVOKEVIRTUAL && instr.owner == 'net/minecraft/world/inventory/ChestMenu' && instr.name == ASMAPI.mapMethod('m_39261_')) {
|
} else if (instr.getOpcode() == Opcodes.INVOKEVIRTUAL && instr.owner == 'net/minecraft/world/inventory/ChestMenu' && instr.name == 'getContainer') {
|
||||||
instr.owner = 'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu'
|
instr.owner = 'ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu'
|
||||||
instr.name = 'getContainer'
|
instr.name = 'getContainer'
|
||||||
}
|
}
|
||||||
|
@ -626,7 +626,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
||||||
'methodName': ASMAPI.mapMethod('m_69478_'), // enableBlend
|
'methodName': 'enableBlend',
|
||||||
'methodDesc': '()V'
|
'methodDesc': '()V'
|
||||||
},
|
},
|
||||||
'transformer': patchBlendFunc
|
'transformer': patchBlendFunc
|
||||||
@ -636,7 +636,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
||||||
'methodName': ASMAPI.mapMethod('m_69461_'), // disableBlend
|
'methodName': 'disableBlend',
|
||||||
'methodDesc': '()V'
|
'methodDesc': '()V'
|
||||||
},
|
},
|
||||||
'transformer': patchBlendFunc
|
'transformer': patchBlendFunc
|
||||||
@ -646,7 +646,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
||||||
'methodName': ASMAPI.mapMethod('m_69405_'), // blendFunc
|
'methodName': 'blendFunc',
|
||||||
'methodDesc': '(II)V'
|
'methodDesc': '(II)V'
|
||||||
},
|
},
|
||||||
'transformer': patchBlendFunc
|
'transformer': patchBlendFunc
|
||||||
@ -656,7 +656,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
||||||
'methodName': ASMAPI.mapMethod('m_69411_'), // blendFuncSeparate
|
'methodName': 'blendFuncSeparate',
|
||||||
'methodDesc': '(IIII)V'
|
'methodDesc': '(IIII)V'
|
||||||
},
|
},
|
||||||
'transformer': patchBlendFunc
|
'transformer': patchBlendFunc
|
||||||
@ -666,7 +666,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
||||||
'methodName': ASMAPI.mapMethod('m_69416_'), // blendFuncSeparate
|
'methodName': 'blendFuncSeparate',
|
||||||
'methodDesc': '(Lcom/mojang/blaze3d/platform/GlStateManager$SourceFactor;Lcom/mojang/blaze3d/platform/GlStateManager$DestFactor;Lcom/mojang/blaze3d/platform/GlStateManager$SourceFactor;Lcom/mojang/blaze3d/platform/GlStateManager$DestFactor;)V'
|
'methodDesc': '(Lcom/mojang/blaze3d/platform/GlStateManager$SourceFactor;Lcom/mojang/blaze3d/platform/GlStateManager$DestFactor;Lcom/mojang/blaze3d/platform/GlStateManager$SourceFactor;Lcom/mojang/blaze3d/platform/GlStateManager$DestFactor;)V'
|
||||||
},
|
},
|
||||||
'transformer': patchBlendFunc
|
'transformer': patchBlendFunc
|
||||||
@ -676,7 +676,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
'class': 'com.mojang.blaze3d.systems.RenderSystem',
|
||||||
'methodName': ASMAPI.mapMethod('m_69408_'), // blendFunc
|
'methodName': 'blendFunc',
|
||||||
'methodDesc': '(Lcom/mojang/blaze3d/platform/GlStateManager$SourceFactor;Lcom/mojang/blaze3d/platform/GlStateManager$DestFactor;)V'
|
'methodDesc': '(Lcom/mojang/blaze3d/platform/GlStateManager$SourceFactor;Lcom/mojang/blaze3d/platform/GlStateManager$DestFactor;)V'
|
||||||
},
|
},
|
||||||
'transformer': patchBlendFunc
|
'transformer': patchBlendFunc
|
||||||
|
@ -8,7 +8,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
"type":"METHOD",
|
"type":"METHOD",
|
||||||
"class":"net.minecraft.world.item.BrushItem",
|
"class":"net.minecraft.world.item.BrushItem",
|
||||||
"methodName":"m_5929_",
|
"methodName":"onUseTick",
|
||||||
"methodDesc":"(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;I)V"
|
"methodDesc":"(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;I)V"
|
||||||
},
|
},
|
||||||
'transformer': function(node) {
|
'transformer': function(node) {
|
||||||
@ -49,7 +49,7 @@ function initializeCoreMod() {
|
|||||||
'target': {
|
'target': {
|
||||||
"type":"METHOD",
|
"type":"METHOD",
|
||||||
"class":"net.minecraft.world.level.block.entity.BrushableBlockEntity",
|
"class":"net.minecraft.world.level.block.entity.BrushableBlockEntity",
|
||||||
"methodName":"m_276923_",
|
"methodName":"brush",
|
||||||
"methodDesc":"(JLnet/minecraft/world/entity/player/Player;Lnet/minecraft/core/Direction;)Z"
|
"methodDesc":"(JLnet/minecraft/world/entity/player/Player;Lnet/minecraft/core/Direction;)Z"
|
||||||
},
|
},
|
||||||
'transformer': function(node) {
|
'transformer': function(node) {
|
||||||
@ -73,4 +73,4 @@ function initializeCoreMod() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user