Show teleportation location and phase-through blocks
This commit is contained in:
parent
6e90378656
commit
3fa0933ac8
@ -2,9 +2,9 @@ package ru.dbotthepony.mc.otm.android.feature
|
|||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem
|
import com.mojang.blaze3d.systems.RenderSystem
|
||||||
import com.mojang.blaze3d.vertex.PoseStack
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
import com.mojang.math.Quaternion
|
|
||||||
import com.mojang.math.Vector3f
|
import com.mojang.math.Vector3f
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
|
import net.minecraft.client.renderer.LevelRenderer
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
@ -15,11 +15,11 @@ import net.minecraft.sounds.SoundSource
|
|||||||
import net.minecraft.world.level.ClipContext
|
import net.minecraft.world.level.ClipContext
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.material.Material
|
import net.minecraft.world.level.material.Material
|
||||||
import net.minecraft.world.phys.BlockHitResult
|
|
||||||
import net.minecraft.world.phys.HitResult
|
import net.minecraft.world.phys.HitResult
|
||||||
import net.minecraft.world.phys.shapes.CollisionContext
|
import net.minecraft.world.phys.shapes.CollisionContext
|
||||||
import net.minecraftforge.client.event.RenderLevelStageEvent
|
import net.minecraftforge.client.event.RenderLevelStageEvent
|
||||||
import net.minecraftforge.event.entity.living.LivingDeathEvent
|
import net.minecraftforge.event.entity.living.LivingDeathEvent
|
||||||
|
import org.lwjgl.opengl.GL11.GL_ALWAYS
|
||||||
import org.lwjgl.opengl.GL11.GL_LESS
|
import org.lwjgl.opengl.GL11.GL_LESS
|
||||||
import ru.dbotthepony.mc.otm.NULLABLE_MINECRAFT_SERVER
|
import ru.dbotthepony.mc.otm.NULLABLE_MINECRAFT_SERVER
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
@ -29,8 +29,12 @@ import ru.dbotthepony.mc.otm.android.AndroidResearchManager
|
|||||||
import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact
|
import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact
|
||||||
import ru.dbotthepony.mc.otm.capability.matteryPlayer
|
import ru.dbotthepony.mc.otm.capability.matteryPlayer
|
||||||
|
import ru.dbotthepony.mc.otm.client.minecraft
|
||||||
|
import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource
|
||||||
import ru.dbotthepony.mc.otm.client.render.ResearchIcons
|
import ru.dbotthepony.mc.otm.client.render.ResearchIcons
|
||||||
import ru.dbotthepony.mc.otm.client.render.element
|
import ru.dbotthepony.mc.otm.client.render.element
|
||||||
|
import ru.dbotthepony.mc.otm.client.render.linesIgnoreZRenderType
|
||||||
|
import ru.dbotthepony.mc.otm.core.ImmutableList
|
||||||
import ru.dbotthepony.mc.otm.core.Vector
|
import ru.dbotthepony.mc.otm.core.Vector
|
||||||
import ru.dbotthepony.mc.otm.core.asVector
|
import ru.dbotthepony.mc.otm.core.asVector
|
||||||
import ru.dbotthepony.mc.otm.core.component1
|
import ru.dbotthepony.mc.otm.core.component1
|
||||||
@ -86,7 +90,13 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun trace(): BlockPos? {
|
private data class TraceResult(val pos: BlockPos? = null, val phasedBlocks: Collection<BlockPos> = listOf()) {
|
||||||
|
companion object {
|
||||||
|
val EMPTY = TraceResult()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun trace(): TraceResult {
|
||||||
val headPosition = ply.eyePosition
|
val headPosition = ply.eyePosition
|
||||||
val aimVector = ply.getViewVector(1f)
|
val aimVector = ply.getViewVector(1f)
|
||||||
|
|
||||||
@ -99,7 +109,7 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
))
|
))
|
||||||
|
|
||||||
if (result.isInside || result.type == HitResult.Type.MISS) {
|
if (result.isInside || result.type == HitResult.Type.MISS) {
|
||||||
return null
|
return TraceResult.EMPTY
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -107,18 +117,18 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
isValidPosition(result.blockPos.above()) &&
|
isValidPosition(result.blockPos.above()) &&
|
||||||
shortestDistanceBetween(ply.genericPositions(), result.blockPos.above().asVector()) <= ServerConfig.EnderTeleporter.MAX_DISTANCE
|
shortestDistanceBetween(ply.genericPositions(), result.blockPos.above().asVector()) <= ServerConfig.EnderTeleporter.MAX_DISTANCE
|
||||||
) {
|
) {
|
||||||
return result.blockPos.above()
|
return TraceResult(result.blockPos.above())
|
||||||
}
|
}
|
||||||
|
|
||||||
for (y in 0 .. ServerConfig.EnderTeleporter.MAX_PHASE_DISTANCE) {
|
for (y in 0 .. ServerConfig.EnderTeleporter.MAX_PHASE_DISTANCE) {
|
||||||
val pos = result.blockPos + BlockPos(0, y + 1, 0)
|
val pos = result.blockPos + BlockPos(0, y + 1, 0)
|
||||||
|
|
||||||
if (isValidPosition(pos) && shortestDistanceBetween(ply.genericPositions(), pos.asVector()) <= ServerConfig.EnderTeleporter.MAX_DISTANCE) {
|
if (isValidPosition(pos) && shortestDistanceBetween(ply.genericPositions(), pos.asVector()) <= ServerConfig.EnderTeleporter.MAX_DISTANCE) {
|
||||||
return pos
|
return TraceResult(pos, if (y != 0) ImmutableList(y + 1) { result.blockPos + BlockPos(0, it, 0) } else listOf())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null
|
return TraceResult.EMPTY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun activate(isClient: Boolean): Boolean {
|
override fun activate(isClient: Boolean): Boolean {
|
||||||
@ -126,7 +136,8 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
val blockPos = trace() ?: return false
|
val (blockPos) = trace()
|
||||||
|
blockPos ?: return false
|
||||||
|
|
||||||
cooldown = ServerConfig.EnderTeleporter.COOLDOWN
|
cooldown = ServerConfig.EnderTeleporter.COOLDOWN
|
||||||
|
|
||||||
@ -152,14 +163,19 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val previewRenderStage: RenderLevelStageEvent.Stage
|
||||||
|
get() = RenderLevelStageEvent.Stage.AFTER_PARTICLES
|
||||||
|
|
||||||
override fun renderPreview(event: RenderLevelStageEvent) {
|
override fun renderPreview(event: RenderLevelStageEvent) {
|
||||||
if (!canUse()) return
|
if (!canUse()) return
|
||||||
val pos = trace()
|
val (pos, phasedBlocks) = trace()
|
||||||
|
|
||||||
if (pos != null) {
|
if (pos != null) {
|
||||||
val (x, y, z) = pos.asVector()
|
val (x, y, z) = pos.asVector()
|
||||||
val (vx, vy, vz) = event.camera.position
|
val (vx, vy, vz) = event.camera.position
|
||||||
//event.poseStack.translate(x, y, z)
|
|
||||||
|
if (phasedBlocks.isNotEmpty())
|
||||||
|
event.poseStack.pushPose()
|
||||||
|
|
||||||
event.poseStack.translate(x - vx, y - vy, z - vz)
|
event.poseStack.translate(x - vx, y - vy, z - vz)
|
||||||
event.poseStack.mulPose(Vector3f.YP.rotationDegrees(-event.camera.yRot))
|
event.poseStack.mulPose(Vector3f.YP.rotationDegrees(-event.camera.yRot))
|
||||||
@ -168,12 +184,36 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
val size = 1f + sin((System.nanoTime() / 1_000_000) / 250.0).toFloat() * 0.2f
|
val size = 1f + sin((System.nanoTime() / 1_000_000) / 250.0).toFloat() * 0.2f
|
||||||
val half = size / -2f
|
val half = size / -2f
|
||||||
|
|
||||||
RenderSystem.enableDepthTest()
|
RenderSystem.disableDepthTest()
|
||||||
RenderSystem.depthFunc(GL_LESS)
|
|
||||||
|
|
||||||
RenderSystem.setShaderColor(1f, 1f, 1f, 0.5f)
|
RenderSystem.setShaderColor(1f, 1f, 1f, 0.5f)
|
||||||
SPRITE.render(event.poseStack, x = half, y = half, width = size, height = size)
|
SPRITE.render(event.poseStack, x = half, y = half, width = size, height = size)
|
||||||
RenderSystem.setShaderColor(1f, 1f, 1f, 1f)
|
RenderSystem.setShaderColor(1f, 1f, 1f, 1f)
|
||||||
|
|
||||||
|
if (phasedBlocks.isNotEmpty()) {
|
||||||
|
event.poseStack.popPose()
|
||||||
|
val collisionContext = CollisionContext.of(ply)
|
||||||
|
val builder = source.getBuffer(linesIgnoreZRenderType)
|
||||||
|
|
||||||
|
for (blockPos in phasedBlocks) {
|
||||||
|
val blockState = ply.level.getBlockState(blockPos)
|
||||||
|
val shape = blockState.getShape(ply.level, blockPos, collisionContext)
|
||||||
|
|
||||||
|
LevelRenderer.renderShape(
|
||||||
|
event.poseStack,
|
||||||
|
builder,
|
||||||
|
shape,
|
||||||
|
blockPos.x - vx,
|
||||||
|
blockPos.y - vy,
|
||||||
|
blockPos.z - vz,
|
||||||
|
1f, 1f, 1f, 1f
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
source.endBatch(linesIgnoreZRenderType)
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderSystem.enableDepthTest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,6 +230,10 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private val source by lazy {
|
||||||
|
DynamicBufferSource(maximalInitialBufferSize = 256)
|
||||||
|
}
|
||||||
|
|
||||||
val SPRITE = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/item/black_hole.png").element(0f, 0f, 16f, 16f, 16f, 16f)
|
val SPRITE = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/item/black_hole.png").element(0f, 0f, 16f, 16f, 16f, 16f)
|
||||||
|
|
||||||
val POWER_COST_DESCRIPTION =
|
val POWER_COST_DESCRIPTION =
|
||||||
|
@ -62,7 +62,12 @@ private fun equals(existing: ImmutableList<RenderType>?, types: ImmutableList<Re
|
|||||||
*
|
*
|
||||||
* Allows to batch OTM's geometry
|
* Allows to batch OTM's geometry
|
||||||
*/
|
*/
|
||||||
class DynamicBufferSource(val minimalBufferSize: Int = 0) : MultiBufferSource {
|
class DynamicBufferSource(val minimalInitialBufferSize: Int = 0, val maximalInitialBufferSize: Int = Int.MAX_VALUE) : MultiBufferSource {
|
||||||
|
init {
|
||||||
|
require(minimalInitialBufferSize >= 0) { "Invalid minimal buffer size $minimalInitialBufferSize" }
|
||||||
|
require(maximalInitialBufferSize >= minimalInitialBufferSize) { "Maximal buffer size $maximalInitialBufferSize must be greater or equal to minimal buffer size $minimalInitialBufferSize" }
|
||||||
|
}
|
||||||
|
|
||||||
private inner class State(
|
private inner class State(
|
||||||
val type: RenderType,
|
val type: RenderType,
|
||||||
var after: ImmutableList<RenderType>? = null,
|
var after: ImmutableList<RenderType>? = null,
|
||||||
@ -95,7 +100,7 @@ class DynamicBufferSource(val minimalBufferSize: Int = 0) : MultiBufferSource {
|
|||||||
var priority = -1
|
var priority = -1
|
||||||
var dirty: Boolean = false
|
var dirty: Boolean = false
|
||||||
val builder by lazy(LazyThreadSafetyMode.NONE) {
|
val builder by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
BufferBuilder(type.bufferSize().coerceAtLeast(minimalBufferSize))
|
BufferBuilder(type.bufferSize().coerceAtLeast(minimalInitialBufferSize).coerceAtMost(maximalInitialBufferSize))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -387,8 +392,8 @@ class DynamicBufferSource(val minimalBufferSize: Int = 0) : MultiBufferSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val GUI = DynamicBufferSource()
|
val GUI = DynamicBufferSource(maximalInitialBufferSize = 2 shl 8)
|
||||||
val WORLD = DynamicBufferSource(2 shl 16)
|
val WORLD = DynamicBufferSource(minimalInitialBufferSize = 2 shl 12)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called from LevelRenderer
|
* Called from LevelRenderer
|
||||||
|
@ -6,13 +6,15 @@ import com.mojang.blaze3d.vertex.*
|
|||||||
import com.mojang.math.Matrix4f
|
import com.mojang.math.Matrix4f
|
||||||
import net.minecraft.client.renderer.GameRenderer
|
import net.minecraft.client.renderer.GameRenderer
|
||||||
import net.minecraft.client.renderer.RenderStateShard
|
import net.minecraft.client.renderer.RenderStateShard
|
||||||
|
import net.minecraft.client.renderer.RenderStateShard.LineStateShard
|
||||||
import net.minecraft.client.renderer.RenderType
|
import net.minecraft.client.renderer.RenderType
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||||
import org.lwjgl.opengl.GL11
|
|
||||||
import org.lwjgl.opengl.GL11.GL_ALWAYS
|
import org.lwjgl.opengl.GL11.GL_ALWAYS
|
||||||
import org.lwjgl.opengl.GL11.GL_LESS
|
import org.lwjgl.opengl.GL11.GL_LESS
|
||||||
import ru.dbotthepony.mc.otm.client.minecraft
|
import ru.dbotthepony.mc.otm.client.minecraft
|
||||||
import ru.dbotthepony.mc.otm.core.RGBAColor
|
import ru.dbotthepony.mc.otm.core.RGBAColor
|
||||||
|
import java.util.*
|
||||||
|
import kotlin.collections.ArrayDeque
|
||||||
import kotlin.math.PI
|
import kotlin.math.PI
|
||||||
import kotlin.math.acos
|
import kotlin.math.acos
|
||||||
import kotlin.math.cos
|
import kotlin.math.cos
|
||||||
@ -692,6 +694,28 @@ val coloredRectRenderType by lazy {
|
|||||||
builder.createCompositeState(false)) as RenderType
|
builder.createCompositeState(false)) as RenderType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val linesIgnoreZRenderType by lazy {
|
||||||
|
@Suppress("INACCESSIBLE_TYPE")
|
||||||
|
RenderType.create(
|
||||||
|
"lines_ignore_z",
|
||||||
|
DefaultVertexFormat.POSITION_COLOR_NORMAL,
|
||||||
|
VertexFormat.Mode.LINES,
|
||||||
|
256,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
RenderType.CompositeState.builder()
|
||||||
|
.setShaderState(RenderStateShard.RENDERTYPE_LINES_SHADER)
|
||||||
|
.setLineState(LineStateShard(OptionalDouble.empty()))
|
||||||
|
.setLayeringState(RenderStateShard.VIEW_OFFSET_Z_LAYERING)
|
||||||
|
.setTransparencyState(RenderStateShard.TRANSLUCENT_TRANSPARENCY)
|
||||||
|
.setOutputState(RenderStateShard.ITEM_ENTITY_TARGET)
|
||||||
|
.setWriteMaskState(RenderStateShard.COLOR_DEPTH_WRITE)
|
||||||
|
.setCullState(RenderStateShard.NO_CULL)
|
||||||
|
.setDepthTestState(RenderStateShard.NO_DEPTH_TEST)
|
||||||
|
.createCompositeState(false)
|
||||||
|
) as RenderType
|
||||||
|
}
|
||||||
|
|
||||||
fun VertexConsumer.quad(
|
fun VertexConsumer.quad(
|
||||||
pose: PoseStack,
|
pose: PoseStack,
|
||||||
x: Float,
|
x: Float,
|
||||||
|
@ -22,6 +22,7 @@ import ru.dbotthepony.mc.otm.NULLABLE_MINECRAFT_SERVER
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.client.minecraft
|
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.lockBlendFunc
|
||||||
import ru.dbotthepony.mc.otm.client.render.popScissorRect
|
import ru.dbotthepony.mc.otm.client.render.popScissorRect
|
||||||
import ru.dbotthepony.mc.otm.client.render.pushScissorRect
|
import ru.dbotthepony.mc.otm.client.render.pushScissorRect
|
||||||
@ -37,6 +38,7 @@ class MatterReplicatorRenderer(private val context: BlockEntityRendererProvider.
|
|||||||
companion object {
|
companion object {
|
||||||
private val smoke = DustParticleOptions(Vector3f(1f, 1f, 1f), 1f)
|
private val smoke = DustParticleOptions(Vector3f(1f, 1f, 1f), 1f)
|
||||||
private val rand = XoroshiroRandomSource(System.nanoTime(), System.currentTimeMillis())
|
private val rand = XoroshiroRandomSource(System.nanoTime(), System.currentTimeMillis())
|
||||||
|
private val source = DynamicBufferSource(maximalInitialBufferSize = 2 shl 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun render(
|
override fun render(
|
||||||
@ -85,10 +87,6 @@ class MatterReplicatorRenderer(private val context: BlockEntityRendererProvider.
|
|||||||
0
|
0
|
||||||
)
|
)
|
||||||
|
|
||||||
val source = minecraft.renderBuffers().bufferSource()
|
|
||||||
|
|
||||||
source.endBatch()
|
|
||||||
|
|
||||||
context.itemRenderer.render(
|
context.itemRenderer.render(
|
||||||
item,
|
item,
|
||||||
ItemTransforms.TransformType.NONE,
|
ItemTransforms.TransformType.NONE,
|
||||||
|
@ -79,3 +79,96 @@ public com.mojang.math.Matrix3f f_8142_ # m22
|
|||||||
|
|
||||||
public-f net.minecraft.world.inventory.Slot f_40220_ # x
|
public-f net.minecraft.world.inventory.Slot f_40220_ # x
|
||||||
public-f net.minecraft.world.inventory.Slot f_40221_ # y
|
public-f net.minecraft.world.inventory.Slot f_40221_ # y
|
||||||
|
|
||||||
|
public net.minecraft.client.renderer.LevelRenderer m_109782_(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;Lnet/minecraft/world/phys/shapes/VoxelShape;DDDFFFF)V # renderShape
|
||||||
|
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110135_ # ADDITIVE_TRANSPARENCY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173097_ # BLOCK_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110146_ # BLOCK_SHEET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110145_ # BLOCK_SHEET_MIPPED
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110128_ # CLOUDS_TARGET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110114_ # COLOR_DEPTH_WRITE
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110115_ # COLOR_WRITE
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110138_ # CRUMBLING_TRANSPARENCY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110158_ # CULL
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110130_ # DEFAULT_LINE
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110148_ # DEFAULT_TEXTURING
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110116_ # DEPTH_WRITE
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110151_ # ENTITY_GLINT_TEXTURING
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110112_ # EQUAL_DEPTH_TEST
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110150_ # GLINT_TEXTURING
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110137_ # GLINT_TRANSPARENCY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110129_ # ITEM_ENTITY_TARGET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110113_ # LEQUAL_DEPTH_TEST
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110152_ # LIGHTMAP
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110136_ # LIGHTNING_TRANSPARENCY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110123_ # MAIN_TARGET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173098_ # NEW_ENTITY_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110110_ # NO_CULL
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110111_ # NO_DEPTH_TEST
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110117_ # NO_LAYERING
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110153_ # NO_LIGHTMAP
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110155_ # NO_OVERLAY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173096_ # NO_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110147_ # NO_TEXTURE
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110134_ # NO_TRANSPARENCY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110124_ # OUTLINE_TARGET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110154_ # OVERLAY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110126_ # PARTICLES_TARGET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110118_ # POLYGON_OFFSET_LAYERING
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173099_ # POSITION_COLOR_LIGHTMAP_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173104_ # POSITION_COLOR_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173103_ # POSITION_COLOR_TEX_LIGHTMAP_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173101_ # POSITION_COLOR_TEX_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173100_ # POSITION_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173102_ # POSITION_TEX_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173111_ # RENDERTYPE_ARMOR_CUTOUT_NO_CULL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173079_ # RENDERTYPE_ARMOR_ENTITY_GLINT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173078_ # RENDERTYPE_ARMOR_GLINT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173068_ # RENDERTYPE_BEACON_BEAM_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173085_ # RENDERTYPE_CRUMBLING_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173106_ # RENDERTYPE_CUTOUT_MIPPED_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173107_ # RENDERTYPE_CUTOUT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173094_ # RENDERTYPE_END_GATEWAY_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173093_ # RENDERTYPE_END_PORTAL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173074_ # RENDERTYPE_ENERGY_SWIRL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173072_ # RENDERTYPE_ENTITY_ALPHA_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173114_ # RENDERTYPE_ENTITY_CUTOUT_NO_CULL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173063_ # RENDERTYPE_ENTITY_CUTOUT_NO_CULL_Z_OFFSET_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173113_ # RENDERTYPE_ENTITY_CUTOUT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173069_ # RENDERTYPE_ENTITY_DECAL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173084_ # RENDERTYPE_ENTITY_GLINT_DIRECT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173083_ # RENDERTYPE_ENTITY_GLINT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173070_ # RENDERTYPE_ENTITY_NO_OUTLINE_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173071_ # RENDERTYPE_ENTITY_SHADOW_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173067_ # RENDERTYPE_ENTITY_SMOOTH_CUTOUT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173112_ # RENDERTYPE_ENTITY_SOLID_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173065_ # RENDERTYPE_ENTITY_TRANSLUCENT_CULL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_234323_ # RENDERTYPE_ENTITY_TRANSLUCENT_EMISSIVE_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173066_ # RENDERTYPE_ENTITY_TRANSLUCENT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173073_ # RENDERTYPE_EYES_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173082_ # RENDERTYPE_GLINT_DIRECT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173081_ # RENDERTYPE_GLINT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173080_ # RENDERTYPE_GLINT_TRANSLUCENT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173064_ # RENDERTYPE_ITEM_ENTITY_TRANSLUCENT_CULL_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173075_ # RENDERTYPE_LEASH_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173091_ # RENDERTYPE_LIGHTNING_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173095_ # RENDERTYPE_LINES_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173077_ # RENDERTYPE_OUTLINE_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173105_ # RENDERTYPE_SOLID_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173090_ # RENDERTYPE_TEXT_INTENSITY_SEE_THROUGH_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173087_ # RENDERTYPE_TEXT_INTENSITY_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173088_ # RENDERTYPE_TEXT_SEE_THROUGH_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173086_ # RENDERTYPE_TEXT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173109_ # RENDERTYPE_TRANSLUCENT_MOVING_BLOCK_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173110_ # RENDERTYPE_TRANSLUCENT_NO_CRUMBLING_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173108_ # RENDERTYPE_TRANSLUCENT_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173092_ # RENDERTYPE_TRIPWIRE_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173076_ # RENDERTYPE_WATER_MASK_SHADER
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110125_ # TRANSLUCENT_TARGET
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110139_ # TRANSLUCENT_TRANSPARENCY
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110119_ # VIEW_OFFSET_Z_LAYERING
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_173089_ # VIEW_SCALE_Z_EPSILON
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard f_110127_ # WEATHER_TARGET
|
||||||
|
|
||||||
|
public net.minecraft.client.renderer.RenderStateShard$LineStateShard
|
||||||
|
Loading…
Reference in New Issue
Block a user