From bb52032364b685486389729f2435d4d137ccbe5f Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 7 Jan 2023 13:28:06 +0700 Subject: [PATCH] More 1.19.3 porting --- .../android/feature/EnderTeleporterFeature.kt | 10 +++--- .../entity/blackhole/BlackHoleBlockEntity.kt | 2 +- .../otm/block/entity/blackhole/Explosions.kt | 6 ++-- .../mc/otm/client/render/AtlasSkinElement.kt | 2 +- .../dbotthepony/mc/otm/client/render/Ext.kt | 10 +++--- .../mc/otm/client/render/GlitchRenderer.kt | 19 ++--------- .../mc/otm/client/render/RenderHelper.kt | 10 +++--- .../mc/otm/client/render/ShockwaveRenderer.kt | 4 +-- .../mc/otm/client/render/WidgetAtlasHolder.kt | 5 ++- .../client/render/blockentity/BankRenderer.kt | 6 ++-- .../render/blockentity/BlackHoleRenderer.kt | 2 +- .../GravitationStabilizerRenderer.kt | 2 +- .../blockentity/MatterReplicatorRenderer.kt | 16 ++------- .../otm/client/screen/panels/Panel2Widget.kt | 5 +-- .../mc/otm/client/screen/panels/SlotPanel.kt | 2 +- .../ru/dbotthepony/mc/otm/core/EuclidMath.kt | 33 +++++++++++++++++++ .../mc/otm/core/UnOverengineering.kt | 4 +++ .../item/AbstractExoPackSlotUpgradeItem.kt | 2 +- .../ru/dbotthepony/mc/otm/item/BatteryItem.kt | 8 ++--- .../mc/otm/item/CreativePatternItem.kt | 2 +- .../mc/otm/item/ExoPackCraftingUpgradeItem.kt | 2 +- .../mc/otm/item/ExoPackProbeItem.kt | 2 +- .../mc/otm/item/GravitationalDisruptorItem.kt | 4 +-- .../mc/otm/item/MatterCapacitorItem.kt | 6 ++-- .../dbotthepony/mc/otm/item/MatterDustItem.kt | 2 +- .../mc/otm/item/MinecartCargoCrateItem.kt | 2 +- .../mc/otm/item/PatternStorageItem.kt | 8 ++--- .../ru/dbotthepony/mc/otm/item/PillItem.kt | 6 ++-- .../otm/item/PortableCondensationDriveItem.kt | 4 +-- .../item/PortableGravitationStabilizerItem.kt | 2 +- .../mc/otm/item/QuantumBatteryItem.kt | 6 ++-- .../mc/otm/item/SingleUseBatteryItem.kt | 8 ++--- .../mc/otm/item/weapon/AbstractWeaponItem.kt | 10 +++--- .../mc/otm/recipe/EnergyContainerRecipe.kt | 7 ++-- .../ru/dbotthepony/mc/otm/registry/MBlocks.kt | 5 +-- .../mc/otm/registry/MItemFunctionTypes.kt | 3 +- .../mc/otm/registry/MLootItemConditions.kt | 3 +- .../mc/otm/registry/MSoundEvents.kt | 3 +- .../ru/dbotthepony/mc/otm/registry/MStats.kt | 8 ++--- .../objects/StripedColoredDecorativeBlock.kt | 2 +- .../ru/dbotthepony/mc/otm/worldgen/OreGen.kt | 2 -- 41 files changed, 134 insertions(+), 111 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt index 55af601f2..d2805f377 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt @@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.android.feature import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.PoseStack -import com.mojang.math.Vector3f import net.minecraft.ChatFormatting import net.minecraft.client.Camera import net.minecraft.client.renderer.LevelRenderer @@ -44,7 +43,10 @@ import ru.dbotthepony.mc.otm.core.component2 import ru.dbotthepony.mc.otm.core.component3 import ru.dbotthepony.mc.otm.core.formatPower import ru.dbotthepony.mc.otm.core.genericPositions +import ru.dbotthepony.mc.otm.core.holder import ru.dbotthepony.mc.otm.core.plus +import ru.dbotthepony.mc.otm.core.rotateXDegrees +import ru.dbotthepony.mc.otm.core.rotateYDegrees import ru.dbotthepony.mc.otm.core.shortestDistanceBetween import ru.dbotthepony.mc.otm.core.times import ru.dbotthepony.mc.otm.milliTime @@ -301,7 +303,7 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv val event = ForgeEventFactory.onEnderTeleport(ply, blockPos.x + 0.5, blockPos.y.toDouble(), blockPos.z + 0.5) if (event.isCanceled) { - (ply as ServerPlayer).connection.send(ClientboundSoundEntityPacket(SoundEvents.ITEM_BREAK, SoundSource.PLAYERS, ply, 0.3f, 0.5f, ply.level.random.nextLong())) + (ply as ServerPlayer).connection.send(ClientboundSoundEntityPacket(SoundEvents.ITEM_BREAK.holder, SoundSource.PLAYERS, ply, 0.3f, 0.5f, ply.level.random.nextLong())) return false } @@ -333,8 +335,8 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv poseStack.pushPose() poseStack.translate(x - vx, y - vy, z - vz) - poseStack.mulPose(Vector3f.YP.rotationDegrees(-camera.yRot)) - poseStack.mulPose(Vector3f.XP.rotationDegrees(camera.xRot)) + poseStack.rotateYDegrees(-camera.yRot) + poseStack.rotateXDegrees(camera.xRot) val size = 1f + sin(milliTime / 250.0).toFloat() * 0.2f val half = size / -2f diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt index 9cc7d00f4..b119619e4 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt @@ -151,7 +151,7 @@ class BlackHoleBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Synchro blockPos.z + 0.5, gravitationStrength.toFloat() * 60, false, - Explosion.BlockInteraction.DESTROY + Level.ExplosionInteraction.BLOCK // TODO: 1.19.3 ) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/Explosions.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/Explosions.kt index 128e2bd75..0777f6c46 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/Explosions.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/Explosions.kt @@ -118,7 +118,7 @@ class ExplosionSphere(val hive: ExplosionSphereHive, var pos: Vec3, var stepVelo val block = level.getBlockState(finalPos) if (!block.isAir && block.block !is BlockExplosionDebugger) { - val explosion = Explosion(level, null, null, null, pos.x, pos.y, pos.z, force.toFloat(),false, Explosion.BlockInteraction.BREAK) + val explosion = Explosion(level, null, null, null, pos.x, pos.y, pos.z, force.toFloat(), false, Explosion.BlockInteraction.DESTROY_WITH_DECAY) val explosionResistance = block.getExplosionResistance(level, blockPos, explosion) if (explosionResistance > force) { @@ -258,7 +258,7 @@ class ExplosionRay(val hive: ExplosionRayHive, var pos: Vec3, var stepVelocity: val block = level.getBlockState(blockPos) if (!block.isAir && block.block !is BlockExplosionDebugger) { - val explosion = Explosion(level, null, null, null, pos.x, pos.y, pos.z, force.toFloat(),false, Explosion.BlockInteraction.BREAK) + val explosion = Explosion(level, null, null, null, pos.x, pos.y, pos.z, force.toFloat(), false, Explosion.BlockInteraction.DESTROY_WITH_DECAY) val explosionResistance = block.getExplosionResistance(level, blockPos, explosion) if (explosionResistance > force) { @@ -535,7 +535,7 @@ private data class QueuedExplosion(val x: Double, val y: Double, val z: Double, z, radius, false, - Explosion.BlockInteraction.DESTROY + Level.ExplosionInteraction.BLOCK // TODO: 1.19.3 ) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/AtlasSkinElement.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/AtlasSkinElement.kt index be2bbc42b..c2380e795 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/AtlasSkinElement.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/AtlasSkinElement.kt @@ -66,7 +66,7 @@ class AtlasSkinElement( if ( _textureAtlasSprite == null || - _textureAtlasSprite.name.let { it.namespace == "minecraft" && it.path == "missingno" } || + _textureAtlasSprite.contents().name().let { it.namespace == "minecraft" && it.path == "missingno" } || changeset != WidgetAtlasHolder.INSTANCE.changeset ) { val get = WidgetAtlasHolder.INSTANCE.getSprite(location) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Ext.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Ext.kt index 5f25a168d..61efa2b17 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Ext.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Ext.kt @@ -3,13 +3,13 @@ package ru.dbotthepony.mc.otm.client.render import com.mojang.blaze3d.vertex.PoseStack import com.mojang.blaze3d.vertex.Tesselator import com.mojang.blaze3d.vertex.VertexConsumer -import com.mojang.math.Matrix4f -import com.mojang.math.Vector3f import net.minecraft.client.gui.Font import net.minecraft.client.renderer.MultiBufferSource import net.minecraft.core.Vec3i import net.minecraft.network.chat.Component import net.minecraft.util.FormattedCharSequence +import org.joml.Matrix4f +import org.joml.Vector3f import ru.dbotthepony.mc.otm.core.* import kotlin.math.roundToInt @@ -21,12 +21,12 @@ fun VertexConsumer.color(color: RGBAColor): VertexConsumer = color(color.red, co fun PoseStack.translate(vector: Vector) = translate(vector.x, vector.y, vector.z) fun PoseStack.translate(vector: Vec3i) = translate(vector.x.toDouble(), vector.y.toDouble(), vector.z.toDouble()) -fun PoseStack.translate(vector: Vector3f) = last().pose().multiplyWithTranslation(vector.x(), vector.y(), vector.z()) +fun PoseStack.translate(vector: Vector3f) = translate(vector.x(), vector.y(), vector.z()) // TODO: 1.19.3 fun PoseStack.rotateAroundPoint(point: Vector, axis: Vector, rotation: Float, isDegrees: Boolean = false) { val last = last() last.pose().rotateAroundPoint(point, axis, rotation, isDegrees) - last.normal().mul(axis.rotateAroundThis(rotation, isDegrees)) + last.normal().rotate(axis.rotateAroundThis(rotation, isDegrees)) } fun PoseStack.rotateAroundPoint(point: Vector, rotation: IAngle) { @@ -38,7 +38,7 @@ fun PoseStack.rotateAroundPoint(point: Vector, rotation: IAngle) { fun PoseStack.rotateAroundPoint(point: Vector3f, axis: Vector, rotation: Float, isDegrees: Boolean = false) { val last = last() last.pose().rotateAroundPoint(point, axis, rotation, isDegrees) - last.normal().mul(axis.rotateAroundThis(rotation, isDegrees)) + last.normal().rotate(axis.rotateAroundThis(rotation, isDegrees)) } fun PoseStack.rotateAroundPoint(point: Vector3f, rotation: IAngle) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/GlitchRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/GlitchRenderer.kt index a85eec9da..6910fe611 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/GlitchRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/GlitchRenderer.kt @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm.client.render -import com.google.common.collect.ImmutableList import com.mojang.blaze3d.pipeline.MainTarget import com.mojang.blaze3d.platform.GlConst import com.mojang.blaze3d.platform.GlStateManager @@ -8,34 +7,20 @@ import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.BufferBuilder import com.mojang.blaze3d.vertex.BufferUploader import com.mojang.blaze3d.vertex.DefaultVertexFormat -import com.mojang.blaze3d.vertex.Tesselator -import com.mojang.blaze3d.vertex.VertexBuffer import com.mojang.blaze3d.vertex.VertexFormat -import com.mojang.math.Matrix4f -import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap -import it.unimi.dsi.fastutil.ints.Int2ObjectFunction import net.minecraft.client.Minecraft import net.minecraft.client.renderer.FogRenderer import net.minecraft.client.renderer.GameRenderer -import net.minecraft.core.Vec3i import net.minecraft.world.level.levelgen.XoroshiroRandomSource import net.minecraft.world.level.material.FogType -import org.lwjgl.opengl.GL14 -import ru.dbotthepony.mc.otm.ClientConfig +import org.joml.Matrix4f import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.client.minecraft -import ru.dbotthepony.mc.otm.core.RGBAColor -import ru.dbotthepony.mc.otm.core.component1 -import ru.dbotthepony.mc.otm.core.component2 -import ru.dbotthepony.mc.otm.core.component3 import ru.dbotthepony.mc.otm.core.linearInterpolation import ru.dbotthepony.mc.otm.milliTime import java.lang.ref.WeakReference -import java.util.stream.Collectors import kotlin.math.absoluteValue -import kotlin.math.ceil -import kotlin.math.pow @Suppress("SameParameterValue") object GlitchRenderer { @@ -215,7 +200,7 @@ object GlitchRenderer { val glitchBuffer = glitchBuffer val projection = RenderSystem.getProjectionMatrix() - RenderSystem.setProjectionMatrix(Matrix4f().also { it.setIdentity() }) + RenderSystem.setProjectionMatrix(Matrix4f()) RenderSystem.getModelViewStack().also { it.pushPose() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/RenderHelper.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/RenderHelper.kt index ffc77bb79..72d8c4dd8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/RenderHelper.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/RenderHelper.kt @@ -3,12 +3,12 @@ package ru.dbotthepony.mc.otm.client.render import com.mojang.blaze3d.platform.GlStateManager import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.* -import com.mojang.math.Matrix4f import net.minecraft.client.renderer.GameRenderer import net.minecraft.client.renderer.RenderStateShard import net.minecraft.client.renderer.RenderStateShard.LineStateShard import net.minecraft.client.renderer.RenderType import net.minecraft.client.renderer.texture.TextureAtlasSprite +import org.joml.Matrix4f import org.lwjgl.opengl.GL11.GL_ALWAYS import org.lwjgl.opengl.GL11.GL_LESS import ru.dbotthepony.mc.otm.client.minecraft @@ -22,7 +22,7 @@ import kotlin.math.pow import kotlin.math.roundToInt import kotlin.math.sin -private val identity = Matrix4f().also { it.setIdentity() } +private val identity = Matrix4f() var zLevel = 0f var drawColor = RGBAColor(255, 255, 255, 255) @@ -513,11 +513,11 @@ fun TextureAtlasSprite.render( stack: PoseStack, x: Float = 0f, y: Float = 0f, - width: Float = this.width.toFloat(), - height: Float = this.height.toFloat(), + width: Float, + height: Float, winding: UVWindingOrder = UVWindingOrder.NORMAL ) { - RenderSystem.setShaderTexture(0, atlas().location()) + RenderSystem.setShaderTexture(0, atlasLocation()) if (winding.isIdentity) { drawTexturedRect(stack.last().pose(), x, y, width, height, u0, v0, u1, v1) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/ShockwaveRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/ShockwaveRenderer.kt index a1b418fef..1ba1d357f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/ShockwaveRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/ShockwaveRenderer.kt @@ -4,7 +4,6 @@ import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.BufferUploader import com.mojang.blaze3d.vertex.DefaultVertexFormat import com.mojang.blaze3d.vertex.VertexFormat -import com.mojang.math.Vector3f import net.minecraft.client.renderer.GameRenderer import net.minecraftforge.client.event.RenderLevelStageEvent import org.lwjgl.opengl.GL11.GL_LESS @@ -14,6 +13,7 @@ import ru.dbotthepony.mc.otm.core.component1 import ru.dbotthepony.mc.otm.core.component2 import ru.dbotthepony.mc.otm.core.component3 import ru.dbotthepony.mc.otm.core.linearInterpolation +import ru.dbotthepony.mc.otm.core.rotateX import ru.dbotthepony.mc.otm.network.ShockwaveEffectPacket import ru.dbotthepony.mc.otm.secondTimeD import kotlin.math.PI @@ -52,7 +52,7 @@ object ShockwaveRenderer { event.poseStack.pushPose() val (x, y, z) = event.camera.position event.poseStack.translate(pos.x - x, pos.y - y + 0.1f, pos.z - z) // render slightly above landed position - event.poseStack.mulPose(Vector3f.XP.rotation(PI.toFloat() / 2f)) + event.poseStack.rotateX(PI.toFloat() / 2f) uploadArc(event.poseStack.last.pose, builder, x = 0f, y = 0f, innerRadius = (radius - 1f).coerceAtLeast(0f), outerRadius = radius, triangleFan = false) event.poseStack.popPose() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/WidgetAtlasHolder.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/WidgetAtlasHolder.kt index 30dd20860..9825bcc07 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/WidgetAtlasHolder.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/WidgetAtlasHolder.kt @@ -18,7 +18,7 @@ import kotlin.properties.Delegates var isWidgetAtlasAvailable: Boolean = false private set -class WidgetAtlasHolder private constructor(manager: TextureManager) : TextureAtlasHolder(manager, LOCATION, "gui") { +class WidgetAtlasHolder private constructor(manager: TextureManager) : TextureAtlasHolder(manager, LOCATION, INFO_LOCATION) { var changeset = 0 private set @@ -75,6 +75,9 @@ class WidgetAtlasHolder private constructor(manager: TextureManager) : TextureAt @JvmStatic val LOCATION = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/atlas/gui.png") + @JvmStatic + val INFO_LOCATION = ResourceLocation(OverdriveThatMatters.MOD_ID, "fuck/you/mojang") + @JvmStatic var INSTANCE: WidgetAtlasHolder by WriteOnce() private set diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt index 312172f87..038fe9ec9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt @@ -1,7 +1,6 @@ package ru.dbotthepony.mc.otm.client.render.blockentity import com.mojang.blaze3d.vertex.PoseStack -import com.mojang.math.Vector3f import net.minecraft.client.renderer.MultiBufferSource import net.minecraft.client.renderer.blockentity.BlockEntityRenderer import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider @@ -16,6 +15,7 @@ import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel import ru.dbotthepony.mc.otm.core.get +import ru.dbotthepony.mc.otm.core.rotateY import kotlin.math.PI abstract class BankRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer { @@ -42,7 +42,7 @@ abstract class BankRenderer(private val context: BlockEn val rotateFacing = facing == Direction.NORTH || facing == Direction.SOUTH if (rotateFacing) { - stack.mulPose(Vector3f.YP.rotation(PI.toFloat() / 2f)) + stack.rotateY(PI.toFloat() / 2f) } stack.scale(0.02f, 0.01f, 0.01f) @@ -64,7 +64,7 @@ abstract class BankRenderer(private val context: BlockEn height = heightMax * gaugeLevel(blockEntity) ) - stack.mulPose(Vector3f.YP.rotation(PI.toFloat())) + stack.rotateY(PI.toFloat()) stack.translate(-50.0, 0.0, -101.0) texture.uploadOntoPartialColor( diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BlackHoleRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BlackHoleRenderer.kt index 40d9458ed..c6306278d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BlackHoleRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BlackHoleRenderer.kt @@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.client.render.blockentity import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.* -import com.mojang.math.Matrix4f import net.minecraft.client.Minecraft import net.minecraft.client.renderer.GameRenderer import net.minecraft.client.renderer.MultiBufferSource @@ -10,6 +9,7 @@ import net.minecraft.client.renderer.blockentity.BeaconRenderer import net.minecraft.client.renderer.blockentity.BlockEntityRenderer import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider import net.minecraft.world.phys.Vec3 +import org.joml.Matrix4f import org.lwjgl.opengl.GL30 import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.block.entity.GravitationStabilizerBlockEntity diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt index f5960e948..bd1389ce6 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt @@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.client.render.blockentity import com.mojang.blaze3d.vertex.* -import com.mojang.math.Matrix4f import net.minecraft.client.Minecraft import net.minecraft.client.renderer.MultiBufferSource import net.minecraft.client.renderer.RenderType @@ -11,6 +10,7 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRenderer import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider import net.minecraft.client.renderer.texture.OverlayTexture import net.minecraft.core.Direction +import org.joml.Matrix4f import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.block.BlackHoleBlock import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/MatterReplicatorRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/MatterReplicatorRenderer.kt index 42205bffa..3b1e7b8ce 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/MatterReplicatorRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/MatterReplicatorRenderer.kt @@ -1,37 +1,27 @@ package ru.dbotthepony.mc.otm.client.render.blockentity -import com.mojang.blaze3d.platform.GlStateManager import com.mojang.blaze3d.platform.GlStateManager.DestFactor import com.mojang.blaze3d.platform.GlStateManager.SourceFactor import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.PoseStack -import com.mojang.math.Vector3f import net.minecraft.client.renderer.MultiBufferSource import net.minecraft.client.renderer.block.model.ItemTransforms import net.minecraft.client.renderer.blockentity.BlockEntityRenderer import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider -import net.minecraft.client.server.IntegratedServer import net.minecraft.core.particles.DustParticleOptions import net.minecraft.world.level.levelgen.XoroshiroRandomSource -import org.lwjgl.opengl.GL14 -import org.lwjgl.opengl.GL14.GL_ADD -import org.lwjgl.opengl.GL14.GL_FUNC_ADD -import org.lwjgl.opengl.GL14.GL_MIN +import org.joml.Vector3f import org.lwjgl.opengl.GL14.glBlendColor -import ru.dbotthepony.mc.otm.NULLABLE_MINECRAFT_SERVER import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity -import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource import ru.dbotthepony.mc.otm.client.render.lockBlendFunc -import ru.dbotthepony.mc.otm.client.render.popScissorRect -import ru.dbotthepony.mc.otm.client.render.pushScissorRect -import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel import ru.dbotthepony.mc.otm.core.component1 import ru.dbotthepony.mc.otm.core.component2 import ru.dbotthepony.mc.otm.core.component3 import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.normalizeAngleDeg +import ru.dbotthepony.mc.otm.core.rotateYDegrees import ru.dbotthepony.mc.otm.isPaused class MatterReplicatorRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer { @@ -78,7 +68,7 @@ class MatterReplicatorRenderer(private val context: BlockEntityRendererProvider. if (!isPaused) tile.renderRotation = normalizeAngleDeg(tile.renderRotation + diff / 10_000_000f) - pose.mulPose(Vector3f.YP.rotationDegrees(tile.renderRotation)) + pose.rotateYDegrees(tile.renderRotation) val model = context.itemRenderer.getModel( item, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Panel2Widget.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Panel2Widget.kt index 235e271ed..5bf81201a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Panel2Widget.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Panel2Widget.kt @@ -1,13 +1,14 @@ package ru.dbotthepony.mc.otm.client.screen.panels import com.mojang.blaze3d.vertex.PoseStack -import net.minecraft.client.gui.components.Widget +import net.minecraft.client.gui.components.Renderable import net.minecraft.client.gui.components.events.GuiEventListener import net.minecraft.client.gui.screens.Screen +// before 1.19.3 Renderable was Widget class Panel2Widget>( val panel: P -) : GuiEventListener, Widget { +) : GuiEventListener, Renderable { init { require(panel.parent == null) { "Widget wrapped panels can't have a parent ($panel has parent ${panel.parent})" } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt index 263da4a72..f2d037a88 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt @@ -104,7 +104,7 @@ open class SlotPanel, out T : Slot> @JvmOverloads const if (icon != null) { val texture = minecraft.getTextureAtlas(icon.first).apply(icon.second) - RenderSystem.setShaderTexture(0, texture.atlas().location()) + RenderSystem.setShaderTexture(0, texture.atlasLocation()) GuiComponent.blit(stack, 1, 1, 0, 16, 16, texture) } else { noItemIcon?.render(stack, width = width, height = height) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/EuclidMath.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/EuclidMath.kt index fd4feaff2..fc6a940dc 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/EuclidMath.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/EuclidMath.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.mc.otm.core +import com.mojang.blaze3d.vertex.PoseStack import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap import net.minecraft.core.BlockPos import net.minecraft.core.Direction @@ -541,3 +542,35 @@ fun angleDifferenceDeg(angle1: Float, angle2: Float): Float { return 360f - diff } + +// 1.19.3 stuff +fun PoseStack.rotateY(rotation: Float): PoseStack { + mulPose(Quaternionf(AxisAngle4f(rotation, 0f, 1f, 0f))) + return this +} + +fun PoseStack.rotateX(rotation: Float): PoseStack { + mulPose(Quaternionf(AxisAngle4f(rotation, 1f, 0f, 0f))) + return this +} + +fun PoseStack.rotateZ(rotation: Float): PoseStack { + mulPose(Quaternionf(AxisAngle4f(rotation, 0f, 0f, 1f))) + return this +} + +fun PoseStack.rotateYDegrees(rotation: Float): PoseStack { + mulPose(Quaternionf(AxisAngle4f(toRadians(rotation), 0f, 1f, 0f))) + return this +} + +fun PoseStack.rotateXDegrees(rotation: Float): PoseStack { + mulPose(Quaternionf(AxisAngle4f(toRadians(rotation), 1f, 0f, 0f))) + return this +} + +fun PoseStack.rotateZDegrees(rotation: Float): PoseStack { + mulPose(Quaternionf(AxisAngle4f(toRadians(rotation), 0f, 0f, 1f))) + return this +} + diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/UnOverengineering.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/UnOverengineering.kt index 60f4e7329..a409cfa02 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/UnOverengineering.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/UnOverengineering.kt @@ -5,6 +5,7 @@ import net.minecraft.network.chat.MutableComponent import net.minecraft.network.chat.contents.LiteralContents import net.minecraft.network.chat.contents.TranslatableContents import net.minecraft.resources.ResourceLocation +import net.minecraft.sounds.SoundEvent import net.minecraft.world.item.Item import net.minecraft.world.level.block.Block import net.minecraftforge.registries.ForgeRegistries @@ -28,3 +29,6 @@ val Item.registryName get() = ForgeRegistries.ITEMS.getKeyNullable(this) val Block.registryName get() = ForgeRegistries.BLOCKS.getKeyNullable(this) fun FriendlyByteBuf.writeRegistryId(value: Item) = writeRegistryId(ForgeRegistries.ITEMS, value) + +// 1.19.3 lol +inline val SoundEvent.holder get() = ForgeRegistries.SOUND_EVENTS.getHolder(this).orElse(null) ?: throw NoSuchElementException("$this is missing from ${ForgeRegistries.SOUND_EVENTS}") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/AbstractExoPackSlotUpgradeItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/AbstractExoPackSlotUpgradeItem.kt index dc568a513..f4e757762 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/AbstractExoPackSlotUpgradeItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/AbstractExoPackSlotUpgradeItem.kt @@ -113,6 +113,6 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr override fun getUseAnimation(p_41452_: ItemStack): UseAnim = UseAnim.BOW companion object { - fun defaultProperties(rarity: Rarity = Rarity.UNCOMMON) = Properties().stacksTo(8).rarity(Rarity.UNCOMMON).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).fireResistant() + fun defaultProperties(rarity: Rarity = Rarity.UNCOMMON): Properties = Properties().stacksTo(8).rarity(Rarity.UNCOMMON).fireResistant() } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/BatteryItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/BatteryItem.kt index 02a5b8bb8..9aeea6fff 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/BatteryItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/BatteryItem.kt @@ -71,7 +71,7 @@ open class BatteryItem : Item { receive: Decimal, extract: Decimal = receive, initialBatteryLevel: Decimal = Decimal.ZERO - ) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + ) : super(Properties().stacksTo(1)) { isCreative = false this._capacity = { storage } this._receive = { receive } @@ -84,7 +84,7 @@ open class BatteryItem : Item { receive: () -> Decimal, extract: () -> Decimal = receive, initialBatteryLevel: () -> Decimal = { Decimal.ZERO } - ) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + ) : super(Properties().stacksTo(1)) { isCreative = false this._capacity = storage this._receive = receive @@ -92,7 +92,7 @@ open class BatteryItem : Item { this._initialBatteryLevel = initialBatteryLevel } - constructor(values: BatteryBalanceValues) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor(values: BatteryBalanceValues) : super(Properties().stacksTo(1)) { isCreative = false this._capacity = values::capacity this._receive = values::receive @@ -100,7 +100,7 @@ open class BatteryItem : Item { this._initialBatteryLevel = values::initialBatteryLevel } - constructor() : super(Properties().stacksTo(1).rarity(Rarity.EPIC).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor() : super(Properties().stacksTo(1).rarity(Rarity.EPIC)) { isCreative = true _capacity = { Decimal.LONG_MAX_VALUE } _receive = { Decimal.LONG_MAX_VALUE } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/CreativePatternItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/CreativePatternItem.kt index 2f2c04c0d..195e20896 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/CreativePatternItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/CreativePatternItem.kt @@ -26,7 +26,7 @@ import ru.dbotthepony.mc.otm.matter.MatterManager import java.util.* import java.util.stream.Stream -class CreativePatternItem : Item(Properties().rarity(Rarity.EPIC).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1)) { +class CreativePatternItem : Item(Properties().rarity(Rarity.EPIC).stacksTo(1)) { private object Patterns : IPatternStorage, ICapabilityProvider { private val resolver = LazyOptional.of { this } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackCraftingUpgradeItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackCraftingUpgradeItem.kt index 55fd51e3f..cac3c7778 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackCraftingUpgradeItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackCraftingUpgradeItem.kt @@ -15,7 +15,7 @@ import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.runIfClient -class ExoPackCraftingUpgradeItem : Item(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1).rarity(Rarity.RARE)) { +class ExoPackCraftingUpgradeItem : Item(Properties().stacksTo(1).rarity(Rarity.RARE)) { override fun getUseDuration(p_41454_: ItemStack): Int { return 30 } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackProbeItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackProbeItem.kt index ba8136365..ec4e4a962 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackProbeItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ExoPackProbeItem.kt @@ -17,7 +17,7 @@ import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.registry.MRegistry import ru.dbotthepony.mc.otm.runIfClient -class ExoPackProbeItem : Item(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1).rarity(Rarity.EPIC)) { +class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) { override fun getUseDuration(p_41454_: ItemStack): Int { return 30 } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/GravitationalDisruptorItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/GravitationalDisruptorItem.kt index df6c8e937..4839d319f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/GravitationalDisruptorItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/GravitationalDisruptorItem.kt @@ -11,7 +11,7 @@ import net.minecraft.world.level.Level import ru.dbotthepony.mc.otm.core.TranslatableComponent class GravitationalDisruptorItem : - Item(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1).rarity(Rarity.EPIC)) { + Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) { override fun appendHoverText( p_41421_: ItemStack, p_41422_: Level?, @@ -51,4 +51,4 @@ class GravitationalDisruptorItem : ) ).withStyle(ChatFormatting.DARK_RED) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterCapacitorItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterCapacitorItem.kt index 612c6a831..9058ef64a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterCapacitorItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterCapacitorItem.kt @@ -94,17 +94,17 @@ class MatterCapacitorItem : Item { private val isCreative: Boolean - constructor(storage: Decimal) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor(storage: Decimal) : super(Properties().stacksTo(1)) { isCreative = false _capacity = { storage } } - constructor(storage: () -> Decimal) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor(storage: () -> Decimal) : super(Properties().stacksTo(1)) { isCreative = false _capacity = storage } - constructor() : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).rarity(Rarity.EPIC)) { + constructor() : super(Properties().stacksTo(1).rarity(Rarity.EPIC)) { isCreative = true _capacity = { Decimal.LONG_MAX_VALUE } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterDustItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterDustItem.kt index 73bf251da..9d533f3c8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterDustItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/MatterDustItem.kt @@ -15,7 +15,7 @@ import ru.dbotthepony.mc.otm.core.set import ru.dbotthepony.mc.otm.matter.IMatterValue import ru.dbotthepony.mc.otm.matter.MatterValue -class MatterDustItem : Item(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(64)), IMatterItem { +class MatterDustItem : Item(Properties().stacksTo(64)), IMatterItem { private fun matter(stack: ItemStack): Decimal { return stack.tag?.get("matter")?.let { return@let Decimal.deserializeNBT(it) } ?: return Decimal.ZERO } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/MinecartCargoCrateItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/MinecartCargoCrateItem.kt index f12f2f3e5..977ea270d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/MinecartCargoCrateItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/MinecartCargoCrateItem.kt @@ -21,7 +21,7 @@ import ru.dbotthepony.mc.otm.entity.MinecartCargoCrate import ru.dbotthepony.mc.otm.registry.MEntityTypes import kotlin.math.floor -class MinecartCargoCrateItem(val color: DyeColor?) : Item(Properties().stacksTo(16).tab(if (color == null) OverdriveThatMatters.INSTANCE.CREATIVE_TAB else OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE)) { +class MinecartCargoCrateItem(val color: DyeColor?) : Item(Properties().stacksTo(16)) { init { DispenserBlock.registerBehavior(this, Companion) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PatternStorageItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PatternStorageItem.kt index d9f83835a..93ffbfb2f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PatternStorageItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PatternStorageItem.kt @@ -27,17 +27,17 @@ class PatternStorageItem : Item { val capacity get() = _capacity.invoke() var isCreative: Boolean - constructor(capacity: Int) : super(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1)) { + constructor(capacity: Int) : super(Properties().stacksTo(1)) { _capacity = { capacity } isCreative = false } - constructor(capacity: () -> Int) : super(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1)) { + constructor(capacity: () -> Int) : super(Properties().stacksTo(1)) { _capacity = capacity isCreative = false } - constructor() : super(Properties().rarity(Rarity.EPIC).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1)) { + constructor() : super(Properties().rarity(Rarity.EPIC).stacksTo(1)) { isCreative = true _capacity = { Int.MAX_VALUE } } @@ -184,4 +184,4 @@ class PatternStorageItem : Item { return PatternInsertInserted(pattern) } } -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PillItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PillItem.kt index ac7026454..9c50f7654 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PillItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PillItem.kt @@ -20,7 +20,7 @@ enum class PillType { BECOME_ANDROID, BECOME_HUMANE, OBLIVION } -class HealPillItem : Item(Properties().stacksTo(64).rarity(Rarity.UNCOMMON).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { +class HealPillItem : Item(Properties().stacksTo(64).rarity(Rarity.UNCOMMON)) { override fun getUseDuration(p_41454_: ItemStack): Int { return 24 } @@ -65,7 +65,7 @@ class HealPillItem : Item(Properties().stacksTo(64).rarity(Rarity.UNCOMMON).tab( } class PillItem(val pillType: PillType) : - Item(Properties().stacksTo(64).rarity(Rarity.UNCOMMON).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + Item(Properties().stacksTo(64).rarity(Rarity.UNCOMMON)) { override fun getUseDuration(p_41454_: ItemStack): Int { return 32 @@ -168,4 +168,4 @@ class PillItem(val pillType: PillType) : } override fun getUseAnimation(p_41452_: ItemStack): UseAnim = UseAnim.EAT -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt index ac493a33c..48d62cfd0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt @@ -29,7 +29,7 @@ import java.math.BigInteger import java.util.* class PortableCondensationDriveItem(capacity: Int) : - Item(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + Item(Properties().stacksTo(1)) { val capacity: BigInteger = capacity.toBigInteger() private inner class DriveCapability(private val stack: ItemStack) : ICapabilityProvider { @@ -154,4 +154,4 @@ class PortableCondensationDriveItem(capacity: Int) : } } } -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableGravitationStabilizerItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableGravitationStabilizerItem.kt index 16c39dc80..c09244d5e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableGravitationStabilizerItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableGravitationStabilizerItem.kt @@ -41,7 +41,7 @@ private object GravitationStabilizerArmorRenderProperties : IClientItemExtension } } -class ItemPortableGravitationStabilizer : ArmorItem(GravitationStabilizerArmorMaterial, EquipmentSlot.CHEST, Properties().stacksTo(1).rarity(Rarity.RARE).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { +class ItemPortableGravitationStabilizer : ArmorItem(GravitationStabilizerArmorMaterial, EquipmentSlot.CHEST, Properties().stacksTo(1).rarity(Rarity.RARE)) { override fun initializeClient(consumer: Consumer) { super.initializeClient(consumer) consumer.accept(GravitationStabilizerArmorRenderProperties) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt index bc2fbf15d..fe7243c2f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt @@ -292,21 +292,21 @@ class QuantumBatteryItem : Item { Int2ObjectOpenHashMap() } - constructor(saveDataID: String) : super(Properties().stacksTo(1).rarity(Rarity.EPIC).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor(saveDataID: String) : super(Properties().stacksTo(1).rarity(Rarity.EPIC)) { isCreative = true _capacity = { null } _throughput = { null } this.saveDataID = "otm_$saveDataID".intern() } - constructor(saveDataID: String, capacity: Decimal, io: Decimal) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor(saveDataID: String, capacity: Decimal, io: Decimal) : super(Properties().stacksTo(1)) { isCreative = false _capacity = { capacity } _throughput = { io } this.saveDataID = "otm_$saveDataID".intern() } - constructor(saveDataID: String, values: ConciseBalanceValues) : super(Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { + constructor(saveDataID: String, values: ConciseBalanceValues) : super(Properties().stacksTo(1)) { isCreative = false _capacity = values::capacity _throughput = values::throughput diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/SingleUseBatteryItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/SingleUseBatteryItem.kt index 37c0bb5f8..f888fd770 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/SingleUseBatteryItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/SingleUseBatteryItem.kt @@ -18,10 +18,10 @@ import ru.dbotthepony.mc.otm.core.* open class SingleUseBatteryItem( private val _capacity: () -> Decimal, private val _throughput: () -> Decimal? = { null }, - properties: Properties = Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB) + properties: Properties = Properties().stacksTo(1) ) : Item(properties) { - constructor(values: ConciseBalanceValues, properties: Properties = Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) : this(values::capacity, values::throughput, properties) - constructor(storage: Decimal, throughput: Decimal? = null, properties: Properties = Properties().stacksTo(1).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) : this({ storage }, { throughput }, properties) + constructor(values: ConciseBalanceValues, properties: Properties = Properties().stacksTo(1)) : this(values::capacity, values::throughput, properties) + constructor(storage: Decimal, throughput: Decimal? = null, properties: Properties = Properties().stacksTo(1)) : this({ storage }, { throughput }, properties) val capacity get() = _capacity.invoke() val throughput get() = _throughput.invoke() @@ -58,7 +58,7 @@ open class SingleUseBatteryItem( } } -class ZPMItem : SingleUseBatteryItem(ServerConfig.ZPM_BATTERY, Properties().stacksTo(1).rarity(Rarity.EPIC).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) { +class ZPMItem : SingleUseBatteryItem(ServerConfig.ZPM_BATTERY, Properties().stacksTo(1).rarity(Rarity.EPIC)) { override fun appendHoverText( itemStack: ItemStack, p_41422_: Level?, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt index 1584f5682..bf58e6e3c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt @@ -414,9 +414,9 @@ abstract class AbstractWeaponItem(val tables: KClass, pr yaw += (rotFire.yaw + (predictedData?.fireAnimDeviation?.yaw ?: 0.0)) * fireAnim * (1.0 - progress * 0.6) roll += (rotFire.roll + (predictedData?.fireAnimDeviation?.roll ?: 0.0)) * fireAnim * (1.0 - progress * 0.6) - pose.mulPose(Vector3f.ZP.rotation(roll.toFloat())) - pose.mulPose(Vector3f.YP.rotation(yaw.toFloat())) - pose.mulPose(Vector3f.XP.rotation(pitch.toFloat())) + pose.rotateZ(roll.toFloat()) + pose.rotateY(yaw.toFloat()) + pose.rotateX(pitch.toFloat()) itemInHandRenderer.renderItem( player, @@ -436,8 +436,8 @@ abstract class AbstractWeaponItem(val tables: KClass, pr RenderSystem.setShaderColor(1f, 1f, 1f, 1f) pose.translate(-0.85, 0.25, -0.25) - pose.mulPose(Vector3f.ZP.rotationDegrees(180f)) - pose.mulPose(Vector3f.YP.rotationDegrees(180f)) + pose.rotateZ(PI.toFloat()) + pose.rotateY(PI.toFloat()) pose.scale(0.01f, 0.01f, 0.01f) setDrawColor(holoHudBackground) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/EnergyContainerRecipe.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/EnergyContainerRecipe.kt index cf2ec4a80..53599a2e1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/EnergyContainerRecipe.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/EnergyContainerRecipe.kt @@ -6,6 +6,8 @@ import net.minecraft.network.FriendlyByteBuf import net.minecraft.resources.ResourceLocation import net.minecraft.world.inventory.CraftingContainer import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.crafting.CookingBookCategory +import net.minecraft.world.item.crafting.CraftingBookCategory import net.minecraft.world.item.crafting.CraftingRecipe import net.minecraft.world.item.crafting.Ingredient import net.minecraft.world.item.crafting.RecipeSerializer @@ -21,12 +23,13 @@ import ru.dbotthepony.mc.otm.core.tagNotNull class EnergyContainerRecipe( p_44153_: ResourceLocation, p_44154_: String, + category: CraftingBookCategory, p_44155_: Int, p_44156_: Int, p_44157_: NonNullList, p_44158_: ItemStack, -) : ShapedRecipe(p_44153_, p_44154_, p_44155_, p_44156_, p_44157_, p_44158_) { - constructor(parent: ShapedRecipe) : this(parent.id, parent.group, parent.width, parent.height, parent.ingredients, parent.resultItem) +) : ShapedRecipe(p_44153_, p_44154_, category, p_44155_, p_44156_, p_44157_, p_44158_) { + constructor(parent: ShapedRecipe) : this(parent.id, parent.group, parent.category(), parent.width, parent.height, parent.ingredients, parent.resultItem) override fun assemble(container: CraftingContainer): ItemStack { val itemStack = super.assemble(container) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt index 06625839d..60a750a26 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt @@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.ChatFormatting import net.minecraft.core.BlockPos import net.minecraft.network.chat.Component +import net.minecraft.sounds.SoundEvents import net.minecraft.util.valueproviders.UniformInt import net.minecraft.world.entity.Entity import net.minecraft.world.entity.monster.Zombie @@ -133,7 +134,7 @@ object MBlocks { val METAL_BEAM: Block by registry.register(MNames.METAL_BEAM) { Block(BlockBehaviour.Properties.of(Material.METAL, DyeColor.GRAY).explosionResistance(14f).destroyTime(2.5f).requiresCorrectToolForDrops()) } val TRITANIUM_DOOR = registry.allColored(MNames.TRITANIUM_DOOR) { color, _ -> - object : DoorBlock(Properties.of(Material.METAL, color ?: DyeColor.LIGHT_BLUE).explosionResistance(80f).noOcclusion().destroyTime(3f).requiresCorrectToolForDrops()) { + object : DoorBlock(Properties.of(Material.METAL, color ?: DyeColor.LIGHT_BLUE).explosionResistance(80f).noOcclusion().destroyTime(3f).requiresCorrectToolForDrops(), SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN) { override fun appendHoverText( p_49816_: ItemStack, p_49817_: BlockGetter?, @@ -161,7 +162,7 @@ object MBlocks { } val TRITANIUM_TRAPDOOR = registry.allColored(MNames.TRITANIUM_TRAPDOOR) { color, _ -> - object : TrapDoorBlock(Properties.of(Material.METAL, color ?: DyeColor.LIGHT_BLUE).explosionResistance(80f).noOcclusion().destroyTime(3f).requiresCorrectToolForDrops()) { + object : TrapDoorBlock(Properties.of(Material.METAL, color ?: DyeColor.LIGHT_BLUE).explosionResistance(80f).noOcclusion().destroyTime(3f).requiresCorrectToolForDrops(), SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN) { override fun appendHoverText( p_49816_: ItemStack, p_49817_: BlockGetter?, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemFunctionTypes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemFunctionTypes.kt index ef7ac0a2b..c19180a93 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemFunctionTypes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemFunctionTypes.kt @@ -1,6 +1,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.core.Registry +import net.minecraft.core.registries.Registries import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.registries.DeferredRegister @@ -8,7 +9,7 @@ import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.data.loot.RandomizerFunction object MItemFunctionTypes { - private val registry = DeferredRegister.create(Registry.LOOT_FUNCTION_REGISTRY, OverdriveThatMatters.MOD_ID) + private val registry = DeferredRegister.create(Registries.LOOT_FUNCTION_TYPE, OverdriveThatMatters.MOD_ID) val RANDOMIZER: LootItemFunctionType by registry.register("randomizer") { LootItemFunctionType(RandomizerFunction.Companion) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt index 20fa79776..9149e0b10 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt @@ -1,6 +1,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.core.Registry +import net.minecraft.core.registries.Registries import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.registries.DeferredRegister @@ -13,7 +14,7 @@ import ru.dbotthepony.mc.otm.data.condition.KilledByRealPlayerOrIndirectly import ru.dbotthepony.mc.otm.data.condition.ChanceCondition object MLootItemConditions { - private val registry = DeferredRegister.create(Registry.LOOT_ITEM_REGISTRY, OverdriveThatMatters.MOD_ID) + private val registry = DeferredRegister.create(Registries.LOOT_CONDITION_TYPE, OverdriveThatMatters.MOD_ID) val HAS_EXOPACK: LootItemConditionType by registry.register("has_exopack") { LootItemConditionType(HasExoPackCondition) } val CHANCE_WITH_PLAYTIME: LootItemConditionType by registry.register("chance_with_playtime") { LootItemConditionType(ChanceWithPlaytimeCondition) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt index 35ad59aa6..6a92474ae 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt @@ -13,7 +13,8 @@ import ru.dbotthepony.mc.otm.OverdriveThatMatters object MSoundEvents { private val registry: DeferredRegister = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, OverdriveThatMatters.MOD_ID) - private fun make(name: String) = registry.register(name) { SoundEvent(ResourceLocation(OverdriveThatMatters.MOD_ID, name)) } + // TODO: 1.19.3 + private fun make(name: String) = registry.register(name) { SoundEvent.createVariableRangeEvent(ResourceLocation(OverdriveThatMatters.MOD_ID, name)) } val RIFLE_SHOT: SoundEvent by make("item.rifle_shot") val PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt index dffa75140..efc37a888 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt @@ -1,9 +1,9 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.core.Registry +import net.minecraft.core.registries.BuiltInRegistries import net.minecraft.stats.StatFormatter import net.minecraft.stats.Stats -import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent import ru.dbotthepony.mc.otm.registry.StatNames.DAMAGE_ABSORBED import ru.dbotthepony.mc.otm.registry.StatNames.HEALTH_REGENERATED @@ -12,9 +12,9 @@ import ru.dbotthepony.mc.otm.registry.StatNames.POWER_CONSUMED object MStats { fun registerVanilla(event: FMLCommonSetupEvent) { event.enqueueWork { - Registry.register(Registry.CUSTOM_STAT, DAMAGE_ABSORBED, DAMAGE_ABSORBED) - Registry.register(Registry.CUSTOM_STAT, HEALTH_REGENERATED, HEALTH_REGENERATED) - Registry.register(Registry.CUSTOM_STAT, POWER_CONSUMED, POWER_CONSUMED) + Registry.register(BuiltInRegistries.CUSTOM_STAT, DAMAGE_ABSORBED, DAMAGE_ABSORBED) + Registry.register(BuiltInRegistries.CUSTOM_STAT, HEALTH_REGENERATED, HEALTH_REGENERATED) + Registry.register(BuiltInRegistries.CUSTOM_STAT, POWER_CONSUMED, POWER_CONSUMED) Stats.CUSTOM[DAMAGE_ABSORBED, StatFormatter.DIVIDE_BY_TEN] Stats.CUSTOM[HEALTH_REGENERATED, StatFormatter.DIVIDE_BY_TEN] Stats.CUSTOM[POWER_CONSUMED, StatFormatter.DIVIDE_BY_TEN] diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/objects/StripedColoredDecorativeBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/objects/StripedColoredDecorativeBlock.kt index ba916e079..fe3516ddf 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/objects/StripedColoredDecorativeBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/objects/StripedColoredDecorativeBlock.kt @@ -18,7 +18,7 @@ class StripedColoredDecorativeBlock( val basename: String, val blockFactory: (colorA: DyeColor, colorB: DyeColor) -> Block, val itemFactory: ((colorA: DyeColor, colorB: DyeColor, block: Block) -> Item) = { _, _, block -> - BlockItem(block, Item.Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE).stacksTo(64)) + BlockItem(block, Item.Properties().stacksTo(64)) } ) { private val mapBlocks = EnumMap>>(DyeColor::class.java) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/OreGen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/OreGen.kt index 37429e909..495aadf91 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/OreGen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/OreGen.kt @@ -1,8 +1,6 @@ package ru.dbotthepony.mc.otm.worldgen import net.minecraft.core.Holder -import net.minecraft.data.BuiltinRegistries.CONFIGURED_FEATURE -import net.minecraft.data.BuiltinRegistries.PLACED_FEATURE import net.minecraft.data.worldgen.features.OreFeatures import net.minecraft.world.level.levelgen.VerticalAnchor import net.minecraft.world.level.levelgen.feature.ConfiguredFeature