Update tirtanium doors and pressure plate

This commit is contained in:
DBotThePony 2024-08-24 11:49:04 +07:00
parent 8c78bef33c
commit d3e9bfe579
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 91 additions and 18 deletions

View File

@ -1,11 +1,14 @@
package ru.dbotthepony.mc.otm.block.decorative package ru.dbotthepony.mc.otm.block.decorative
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.ChatFormatting import net.minecraft.ChatFormatting
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
import net.minecraft.world.entity.Entity import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.monster.Zombie import net.minecraft.world.entity.monster.Zombie
import net.minecraft.world.item.DyeColor import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.TooltipFlag import net.minecraft.world.item.TooltipFlag
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
@ -16,19 +19,37 @@ import net.minecraft.world.level.material.PushReaction
import ru.dbotthepony.mc.otm.core.TooltipList import ru.dbotthepony.mc.otm.core.TooltipList
import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.collect.iteratorOf import ru.dbotthepony.mc.otm.core.collect.iteratorOf
import java.util.*
import kotlin.jvm.optionals.getOrNull
class TritaniumDoorBlock(val color: DyeColor?) : DoorBlock( class TritaniumDoorBlock(
Properties.of() val color: DyeColor?,
properties: Properties = Properties.of()
.mapColor(color ?: DyeColor.LIGHT_BLUE) .mapColor(color ?: DyeColor.LIGHT_BLUE)
.explosionResistance(80f) .explosionResistance(80f)
.noOcclusion() .noOcclusion()
.destroyTime(3f) .destroyTime(3f)
.pushReaction(PushReaction.DESTROY) .pushReaction(PushReaction.DESTROY)
.requiresCorrectToolForDrops(), .requiresCorrectToolForDrops(),
BlockSetType.IRON blockSetType: BlockSetType = BlockSetType.IRON,
) { ) : DoorBlock(blockSetType, properties) {
val tooltips = TooltipList() val tooltips = TooltipList()
private val codec: MapCodec<TritaniumDoorBlock> = RecordCodecBuilder.mapCodec {
it.group(
DyeColor.CODEC
.optionalFieldOf("color")
.xmap({ it.getOrNull() }, { Optional.ofNullable(it) })
.forGetter(TritaniumDoorBlock::color),
propertiesCodec(),
BlockSetType.CODEC.fieldOf("block_set_type").forGetter(TritaniumDoorBlock::type)
).apply(it, ::TritaniumDoorBlock)
}
override fun codec(): MapCodec<out TritaniumDoorBlock> {
return codec
}
init { init {
tooltips.add { TranslatableComponent("$descriptionId.description0").withStyle(ChatFormatting.DARK_GRAY) } tooltips.add { TranslatableComponent("$descriptionId.description0").withStyle(ChatFormatting.DARK_GRAY) }
tooltips.add { TranslatableComponent("$descriptionId.description1").withStyle(ChatFormatting.DARK_GRAY) } tooltips.add { TranslatableComponent("$descriptionId.description1").withStyle(ChatFormatting.DARK_GRAY) }
@ -37,12 +58,12 @@ class TritaniumDoorBlock(val color: DyeColor?) : DoorBlock(
override fun appendHoverText( override fun appendHoverText(
p_49816_: ItemStack, p_49816_: ItemStack,
p_49817_: BlockGetter?, p_339606_: Item.TooltipContext,
p_49818_: MutableList<Component>, p_49818_: MutableList<Component>,
p_49819_: TooltipFlag p_49819_: TooltipFlag
) { ) {
super.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) super.appendHoverText(p_49816_, p_339606_, p_49818_, p_49819_)
tooltips.assemble(p_49816_, p_49818_) tooltips.assemble(p_49816_, p_339606_, p_49818_)
} }
override fun canEntityDestroy( override fun canEntityDestroy(

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.decorative package ru.dbotthepony.mc.otm.block.decorative
import com.mojang.serialization.MapCodec import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.ChatFormatting import net.minecraft.ChatFormatting
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
@ -13,6 +14,7 @@ import net.minecraft.world.level.Level
import net.minecraft.world.level.block.BasePressurePlateBlock import net.minecraft.world.level.block.BasePressurePlateBlock
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.SoundType import net.minecraft.world.level.block.SoundType
import net.minecraft.world.level.block.state.BlockBehaviour
import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.level.block.state.properties.BlockSetType import net.minecraft.world.level.block.state.properties.BlockSetType
@ -20,10 +22,39 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties
import ru.dbotthepony.mc.otm.core.TooltipList import ru.dbotthepony.mc.otm.core.TooltipList
import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.get
import java.util.Optional
import kotlin.jvm.optionals.getOrNull
class TritaniumPressurePlate(color: DyeColor?) : BasePressurePlateBlock(Properties.of().mapColor(color ?: DyeColor.LIGHT_BLUE).sound(SoundType.METAL).explosionResistance(80f).noOcclusion().destroyTime(3f).requiresCorrectToolForDrops().forceSolidOn().noCollission(), BlockSetType.IRON) { class TritaniumPressurePlate(
val color: DyeColor?,
properties: Properties = Properties.of()
.mapColor(color ?: DyeColor.LIGHT_BLUE)
.sound(SoundType.METAL)
.explosionResistance(80f)
.noOcclusion()
.destroyTime(3f)
.requiresCorrectToolForDrops()
.forceSolidOn()
.noCollission(),
typeSet: BlockSetType = BlockSetType.IRON,
) : BasePressurePlateBlock(properties, typeSet) {
val tooltips = TooltipList() val tooltips = TooltipList()
private val codec: MapCodec<TritaniumPressurePlate> = RecordCodecBuilder.mapCodec {
it.group(
DyeColor.CODEC
.optionalFieldOf("color")
.xmap({ it.getOrNull() }, { Optional.ofNullable(it) })
.forGetter(TritaniumPressurePlate::color),
propertiesCodec(),
BlockSetType.CODEC.fieldOf("block_set_type").forGetter(TritaniumPressurePlate::type)
).apply(it, ::TritaniumPressurePlate)
}
override fun codec(): MapCodec<out TritaniumPressurePlate> {
return codec
}
override fun appendHoverText( override fun appendHoverText(
itemStack: ItemStack, itemStack: ItemStack,
context: Item.TooltipContext, context: Item.TooltipContext,

View File

@ -1,5 +1,7 @@
package ru.dbotthepony.mc.otm.block.decorative package ru.dbotthepony.mc.otm.block.decorative
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.ChatFormatting import net.minecraft.ChatFormatting
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
@ -7,6 +9,7 @@ import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.EntityType
import net.minecraft.world.entity.monster.Zombie import net.minecraft.world.entity.monster.Zombie
import net.minecraft.world.item.DyeColor import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.TooltipFlag import net.minecraft.world.item.TooltipFlag
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
@ -16,18 +19,36 @@ import net.minecraft.world.level.block.state.properties.BlockSetType
import ru.dbotthepony.mc.otm.core.TooltipList import ru.dbotthepony.mc.otm.core.TooltipList
import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.collect.iteratorOf import ru.dbotthepony.mc.otm.core.collect.iteratorOf
import java.util.*
import kotlin.jvm.optionals.getOrNull
class TritaniumTrapdoorBlock(val color: DyeColor?) : TrapDoorBlock( class TritaniumTrapdoorBlock(
Properties.of() val color: DyeColor?,
properties: Properties = Properties.of()
.mapColor(color ?: DyeColor.LIGHT_BLUE) .mapColor(color ?: DyeColor.LIGHT_BLUE)
.explosionResistance(80f) .explosionResistance(80f)
.noOcclusion().destroyTime(3f) .noOcclusion().destroyTime(3f)
.requiresCorrectToolForDrops() .requiresCorrectToolForDrops()
.isValidSpawn { _: BlockState, _: BlockGetter, _: BlockPos, _: EntityType<*>? -> false }, .isValidSpawn { _: BlockState, _: BlockGetter, _: BlockPos, _: EntityType<*>? -> false },
BlockSetType.IRON typeSetType: BlockSetType = BlockSetType.IRON
) { ) : TrapDoorBlock(typeSetType, properties) {
val tooltips = TooltipList() val tooltips = TooltipList()
private val codec: MapCodec<TritaniumTrapdoorBlock> = RecordCodecBuilder.mapCodec {
it.group(
DyeColor.CODEC
.optionalFieldOf("color")
.xmap({ it.getOrNull() }, { Optional.ofNullable(it) })
.forGetter(TritaniumTrapdoorBlock::color),
propertiesCodec(),
BlockSetType.CODEC.fieldOf("block_set_type").forGetter(TritaniumTrapdoorBlock::getType)
).apply(it, ::TritaniumTrapdoorBlock)
}
override fun codec(): MapCodec<out TritaniumTrapdoorBlock> {
return codec
}
init { init {
tooltips.add { TranslatableComponent("$descriptionId.description0").withStyle(ChatFormatting.DARK_GRAY) } tooltips.add { TranslatableComponent("$descriptionId.description0").withStyle(ChatFormatting.DARK_GRAY) }
tooltips.add { TranslatableComponent("$descriptionId.description1").withStyle(ChatFormatting.DARK_GRAY) } tooltips.add { TranslatableComponent("$descriptionId.description1").withStyle(ChatFormatting.DARK_GRAY) }
@ -35,13 +56,13 @@ class TritaniumTrapdoorBlock(val color: DyeColor?) : TrapDoorBlock(
} }
override fun appendHoverText( override fun appendHoverText(
p_49816_: ItemStack, itemStack: ItemStack,
p_49817_: BlockGetter?, context: Item.TooltipContext,
p_49818_: MutableList<Component>, lines: MutableList<Component>,
p_49819_: TooltipFlag tooltipType: TooltipFlag
) { ) {
super.appendHoverText(p_49816_, p_49817_, p_49818_, p_49819_) super.appendHoverText(itemStack, context, lines, tooltipType)
tooltips.assemble(p_49816_, p_49818_) tooltips.assemble(itemStack, context, lines)
} }
override fun canEntityDestroy( override fun canEntityDestroy(