mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-11-06 00:08:53 -05:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
891f984d08 |
No files matched your search
+88
-1
@@ -1,7 +1,9 @@
|
||||
package com.cobblemon.mod.common.client.render.block
|
||||
|
||||
import com.cobblemon.mod.common.block.entity.GrottoBlockEntity
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.LevelRenderer
|
||||
import net.minecraft.client.renderer.MultiBufferSource
|
||||
@@ -12,6 +14,7 @@ import net.minecraft.client.renderer.texture.OverlayTexture
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
|
||||
class GrottoBlockRenderer(ctx: BlockEntityRendererProvider.Context) : BlockEntityRenderer<GrottoBlockEntity> {
|
||||
|
||||
override fun render(
|
||||
entity: GrottoBlockEntity,
|
||||
partialTicks: Float,
|
||||
@@ -24,6 +27,7 @@ class GrottoBlockRenderer(ctx: BlockEntityRendererProvider.Context) : BlockEntit
|
||||
val level = entity.level ?: return
|
||||
|
||||
poseStack.pushPose()
|
||||
|
||||
Minecraft.getInstance().blockRenderer.renderBatched(
|
||||
stateToRender,
|
||||
entity.blockPos,
|
||||
@@ -33,7 +37,90 @@ class GrottoBlockRenderer(ctx: BlockEntityRendererProvider.Context) : BlockEntit
|
||||
true,
|
||||
level.random
|
||||
)
|
||||
poseStack.popPose()
|
||||
|
||||
val overlayTexture = cobblemonResource("textures/block/grotto_overlay.png")
|
||||
val overlayRenderType = RenderType.entityTranslucentCull(overlayTexture)
|
||||
val overlayBuffer = bufferSource.getBuffer(overlayRenderType)
|
||||
|
||||
renderOverlayCube(
|
||||
poseStack,
|
||||
overlayBuffer,
|
||||
packedLight,
|
||||
OverlayTexture.NO_OVERLAY
|
||||
)
|
||||
|
||||
poseStack.popPose()
|
||||
}
|
||||
}
|
||||
|
||||
fun renderOverlayCube(
|
||||
poseStack: PoseStack,
|
||||
buffer: VertexConsumer,
|
||||
light: Int,
|
||||
overlay: Int
|
||||
) {
|
||||
val matrix = poseStack.last().pose()
|
||||
val min = -0.001f
|
||||
val max = 1.001f
|
||||
|
||||
// Front (Z+)
|
||||
buffer.addVertex(matrix, min, min, max).setColor(255, 255, 255, 128)
|
||||
.setUv(min, max).setOverlay(overlay).setLight(light).setNormal(min, min, max)
|
||||
buffer.addVertex(matrix, max, min, max).setColor(255, 255, 255, 128)
|
||||
.setUv(max, max).setOverlay(overlay).setLight(light).setNormal(min, min, max)
|
||||
buffer.addVertex(matrix, max, max, max).setColor(255, 255, 255, 128)
|
||||
.setUv(max, min).setOverlay(overlay).setLight(light).setNormal(min, min, max)
|
||||
buffer.addVertex(matrix, min, max, max).setColor(255, 255, 255, 128)
|
||||
.setUv(min, min).setOverlay(overlay).setLight(light).setNormal(min, min, max)
|
||||
|
||||
// Back (Z-)
|
||||
buffer.addVertex(matrix, max, min, min).setColor(255, 255, 255, 128)
|
||||
.setUv(min, max).setOverlay(overlay).setLight(light).setNormal(min, min, -max)
|
||||
buffer.addVertex(matrix, min, min, min).setColor(255, 255, 255, 128)
|
||||
.setUv(max, max).setOverlay(overlay).setLight(light).setNormal(min, min, -max)
|
||||
buffer.addVertex(matrix, min, max, min).setColor(255, 255, 255, 128)
|
||||
.setUv(max, min).setOverlay(overlay).setLight(light).setNormal(min, min, -max)
|
||||
buffer.addVertex(matrix, max, max, min).setColor(255, 255, 255, 128)
|
||||
.setUv(min, min).setOverlay(overlay).setLight(light).setNormal(min, min, -max)
|
||||
|
||||
// Left (X-)
|
||||
buffer.addVertex(matrix, min, min, min).setColor(255, 255, 255, 128)
|
||||
.setUv(min, max).setOverlay(overlay).setLight(light).setNormal(-max, min, min)
|
||||
buffer.addVertex(matrix, min, min, max).setColor(255, 255, 255, 128)
|
||||
.setUv(max, max).setOverlay(overlay).setLight(light).setNormal(-max, min, min)
|
||||
buffer.addVertex(matrix, min, max, max).setColor(255, 255, 255, 128)
|
||||
.setUv(max, min).setOverlay(overlay).setLight(light).setNormal(-max, min, min)
|
||||
buffer.addVertex(matrix, min, max, min).setColor(255, 255, 255, 128)
|
||||
.setUv(min, min).setOverlay(overlay).setLight(light).setNormal(-max, min, min)
|
||||
|
||||
// Right (X+)
|
||||
buffer.addVertex(matrix, max, min, max).setColor(255, 255, 255, 128)
|
||||
.setUv(min, max).setOverlay(overlay).setLight(light).setNormal(max, min, min)
|
||||
buffer.addVertex(matrix, max, min, min).setColor(255, 255, 255, 128)
|
||||
.setUv(max, max).setOverlay(overlay).setLight(light).setNormal(max, min, min)
|
||||
buffer.addVertex(matrix, max, max, min).setColor(255, 255, 255, 128)
|
||||
.setUv(max, min).setOverlay(overlay).setLight(light).setNormal(max, min, min)
|
||||
buffer.addVertex(matrix, max, max, max).setColor(255, 255, 255, 128)
|
||||
.setUv(min, min).setOverlay(overlay).setLight(light).setNormal(max, min, min)
|
||||
|
||||
// Top (Y+)
|
||||
buffer.addVertex(matrix, min, max, max).setColor(255, 255, 255, 128)
|
||||
.setUv(min, max).setOverlay(overlay).setLight(light).setNormal(min, max, min)
|
||||
buffer.addVertex(matrix, max, max, max).setColor(255, 255, 255, 128)
|
||||
.setUv(max, max).setOverlay(overlay).setLight(light).setNormal(min, max, min)
|
||||
buffer.addVertex(matrix, max, max, min).setColor(255, 255, 255, 128)
|
||||
.setUv(max, min).setOverlay(overlay).setLight(light).setNormal(min, max, min)
|
||||
buffer.addVertex(matrix, min, max, min).setColor(255, 255, 255, 128)
|
||||
.setUv(min, min).setOverlay(overlay).setLight(light).setNormal(min, max, min)
|
||||
|
||||
// Bottom (Y-)
|
||||
buffer.addVertex(matrix, min, min, min).setColor(255, 255, 255, 128)
|
||||
.setUv(min, max).setOverlay(overlay).setLight(light).setNormal(min, -max, min)
|
||||
buffer.addVertex(matrix, max, min, min).setColor(255, 255, 255, 128)
|
||||
.setUv(max, max).setOverlay(overlay).setLight(light).setNormal(min, -max, min)
|
||||
buffer.addVertex(matrix, max, min, max).setColor(255, 255, 255, 128)
|
||||
.setUv(max, min).setOverlay(overlay).setLight(light).setNormal(min, -max, min)
|
||||
buffer.addVertex(matrix, min, min, max).setColor(255, 255, 255, 128)
|
||||
.setUv(min, min).setOverlay(overlay).setLight(light).setNormal(min, -max, min)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"parent": "block/cube_all",
|
||||
"parent": "minecraft:block/air",
|
||||
"textures": {
|
||||
"all": "minecraft:block/barrier"
|
||||
},
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 363 B |
Reference in new issue
Block a user