From 7f58fdf55b878bf65f8fc54f5f4f88c1529f1229 Mon Sep 17 00:00:00 2001 From: mewhenthe Date: Sun, 3 May 2026 19:06:37 +0200 Subject: [PATCH] server hit stuff --- .../client/NeoComputersFabricClient.java | 4 +-- .../neoflock/neocomputers/block/RackBlock.kt | 25 +++++++++++++------ .../entity/render/RackEntityRenderer.kt | 4 +-- .../entity/render/RelayEntityRenderer.kt | 1 + 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/neoflock/neocomputers/platforms/fabric/client/NeoComputersFabricClient.java b/src/main/java/org/neoflock/neocomputers/platforms/fabric/client/NeoComputersFabricClient.java index c81dbb3..10091bb 100644 --- a/src/main/java/org/neoflock/neocomputers/platforms/fabric/client/NeoComputersFabricClient.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/fabric/client/NeoComputersFabricClient.java @@ -22,8 +22,8 @@ public class NeoComputersFabricClient implements ClientModInitializer { public void onInitializeClient() { ModelLoadingPlugin.register(new ModelLoader()); BlockEntityRenderers.register(BlockEntities.INSTANCE.getSCREEN_ENTITY().get(), ScreenEntityRenderer::new); // TODO: put this in common -// BlockEntityRenderers.register(BlockEntities.INSTANCE.getCASE_ENTITY().get(), CaseEntityRenderer::new); -// BlockEntityRenderers.register(BlockEntities.INSTANCE.getRELAY_ENTITY().get(), RelayEntityRenderer::new); + BlockEntityRenderers.register(BlockEntities.INSTANCE.getCASE_ENTITY().get(), CaseEntityRenderer::new); + BlockEntityRenderers.register(BlockEntities.INSTANCE.getRELAY_ENTITY().get(), RelayEntityRenderer::new); BlockEntityRenderers.register(BlockEntities.INSTANCE.getROBOT_ENTITY().get(), RobotEntityRenderer::new); BlockEntityRenderers.register(BlockEntities.INSTANCE.getRACK_ENTITY().get(), RackEntityRenderer::new); diff --git a/src/main/kotlin/org/neoflock/neocomputers/block/RackBlock.kt b/src/main/kotlin/org/neoflock/neocomputers/block/RackBlock.kt index acc9569..3326d93 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/block/RackBlock.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/block/RackBlock.kt @@ -1,6 +1,7 @@ package org.neoflock.neocomputers.block import net.minecraft.core.BlockPos +import net.minecraft.network.chat.Component import net.minecraft.world.InteractionResult import net.minecraft.world.entity.player.Player import net.minecraft.world.level.BlockGetter @@ -13,6 +14,7 @@ import net.minecraft.world.phys.BlockHitResult import net.minecraft.world.phys.shapes.CollisionContext import net.minecraft.world.phys.shapes.Shapes import net.minecraft.world.phys.shapes.VoxelShape +import org.neoflock.neocomputers.NeoComputers import org.neoflock.neocomputers.entity.BlockEntities import org.neoflock.neocomputers.entity.RackEntity @@ -38,12 +40,19 @@ class RackBlock : BaseBlock(Properties.of().noOcclusion()), EntityBlock { // } -// override fun useWithoutItem( -// state: BlockState, -// level: Levesl, -// pos: BlockPos, -// player: Player, -// hitResult: BlockHitResult -// ): InteractionResult? { -// return super.useWithoutItem(state, level, pos, player, hitResult) + override fun useWithoutItem(state: BlockState, level: Level, pos: BlockPos, player: Player, hitResult: BlockHitResult): InteractionResult? { + val res = hitResult.location + if(res.x == 18.0) { // TODO: handle rotation + NeoComputers.LOGGER.info("{} > {} > {}, {} > {} > {}", pos.z+15/16f, res.z, pos.z+1/16f, pos.y+14/16f, res.y, pos.y+2/16f) + if (pos.z + 15 / 16f > res.z && res.z > pos.z + 1 / 16f && pos.y + 14 / 16f > res.y && res.y > pos.y + 2 / 16f) { + var rack = 0 + rack += if(res.y < pos.y+5/16f) 1 else 0 + rack += if(res.y < pos.y+8/16f) 1 else 0 + rack += if(res.y < pos.y+12/16f) 1 else 0 + + player.sendSystemMessage(Component.literal(String.format("Hit server #%d", rack))) // TODO: call some RackItem method + } + } + return super.useWithoutItem(state, level, pos, player, hitResult) + } } \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/entity/render/RackEntityRenderer.kt b/src/main/kotlin/org/neoflock/neocomputers/entity/render/RackEntityRenderer.kt index 8cbe101..c7a346c 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/entity/render/RackEntityRenderer.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/entity/render/RackEntityRenderer.kt @@ -22,10 +22,10 @@ class RackEntityRenderer(val context: BlockEntityRendererProvider.Context) : Blo poseStack.pushPose() poseStack.translate(1/16f, 11/16f, 1/16f) - val render_slot = 2 // this is purely temporary type shit like true alpha shit, anyway it go to 0-3, change and test it if you want + val render_slot = (ent.level!!.dayTime/40)%4 // this is purely temporary type shit like true alpha shit, anyway it go to 0-3, change and test it if you want poseStack.translate(0f, (render_slot)*-3/16f, 0f) val server = object : RackItem {} - server.render(source, poseStack, packedLight) // who knows atp + server.render(source, poseStack, packedLight, 2f+(3*render_slot)) // who knows atp poseStack.popPose() } } \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/entity/render/RelayEntityRenderer.kt b/src/main/kotlin/org/neoflock/neocomputers/entity/render/RelayEntityRenderer.kt index 7497aa2..393e7fc 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/entity/render/RelayEntityRenderer.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/entity/render/RelayEntityRenderer.kt @@ -13,6 +13,7 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider import net.minecraft.resources.ResourceLocation import org.neoflock.neocomputers.NeoComputers import org.neoflock.neocomputers.block.RelayEntity +import java.util.Timer import kotlin.math.min class RelayEntityRenderer(val context: BlockEntityRendererProvider.Context?): BlockEntityRenderer {