Skip to content

Commit

Permalink
Merge branch '1.20_Crabs' of https://github.com/hybridlabs/hybrid-aqu…
Browse files Browse the repository at this point in the history
…atic into 1.20.1
  • Loading branch information
MysticKoko committed Apr 19, 2024
2 parents f3d1fc7 + 030c65f commit c70f287
Show file tree
Hide file tree
Showing 10 changed files with 84 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
"block.hybrid-aquatic.tiger_shark_plushie": "Tiger Shark Plushie",
"block.hybrid-aquatic.tube_sponge": "Tube Sponge",
"block.hybrid-aquatic.whale_shark_plushie": "Whale Shark Plushie",
"block.minecraft.air": "Wall Glowstick",
"effect.hybrid-aquatic.bleeding": "Bleeding",
"effect.hybrid-aquatic.clarity": "Clarity",
"effect.hybrid-aquatic.thalassophobia": "Thalassophobia",
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

36 changes: 11 additions & 25 deletions src/main/kotlin/dev/hybridlabs/aquatic/block/GlowstickBlock.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,11 @@ import net.minecraft.fluid.FluidState
import net.minecraft.fluid.Fluids
import net.minecraft.item.ItemPlacementContext
import net.minecraft.particle.ParticleTypes.GLOW
import net.minecraft.particle.ParticleTypes.SMOKE
import net.minecraft.registry.tag.FluidTags
import net.minecraft.state.StateManager
import net.minecraft.state.property.Properties
import net.minecraft.util.math.BlockPos
import net.minecraft.util.math.Direction
import net.minecraft.util.shape.VoxelShape
import net.minecraft.world.BlockView
import net.minecraft.world.WorldAccess

class GlowstickBlock(settings: Settings) : TorchBlock(settings, GLOW), Waterloggable {
Expand All @@ -32,36 +29,25 @@ class GlowstickBlock(settings: Settings) : TorchBlock(settings, GLOW), Waterlogg
world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world))
}

return if (!canPlaceAt(state, world, pos)) {
Blocks.AIR.defaultState
} else super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos)
return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos)
}

override fun getPlacementState(ctx: ItemPlacementContext): BlockState? {
val fluidState = ctx.world.getFluidState(ctx.blockPos)
return if (fluidState.isIn(FluidTags.WATER)) defaultState.with(
Properties.WATERLOGGED, ctx.world.getFluidState(ctx.blockPos).isOf(
Fluids.WATER)) else null
}

override fun getOutlineShape(
state: BlockState?,
world: BlockView?,
pos: BlockPos?,
context: ShapeContext?
): VoxelShape {
return BOUNDING_SHAPE
override fun getPlacementState(context: ItemPlacementContext): BlockState? {
val fluidState = context.world.getFluidState(context.blockPos)
return super.getPlacementState(context)?.with(Properties.WATERLOGGED, fluidState == Fluids.WATER.getStill(false))
}

override fun getFluidState(state: BlockState): FluidState {
return if (state.get(Properties.WATERLOGGED)) Fluids.WATER.getStill(false) else super.getFluidState(state)
}

override fun getRenderType(state: BlockState): BlockRenderType {
return BlockRenderType.MODEL
}

override fun appendProperties(builder: StateManager.Builder<Block, BlockState>) {
builder.add(Properties.WATERLOGGED)
}
}

companion object {
fun luminance(state: BlockState): Int {
return if (state.get(Properties.WATERLOGGED)) 14 else 0
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,21 +103,21 @@ object HybridAquaticBlocks {
val LOPHELIA_CORAL_BLOCK = register("lophelia_coral_block", CoralBlockBlock(DEAD_LOPHELIA_CORAL_BLOCK, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_BLOCK).mapColor(MapColor.OFF_WHITE).instrument(Instrument.BASEDRUM).requiresTool().hardness(1.0F).sounds(BlockSoundGroup.CORAL)))
val DEAD_LOPHELIA_CORAL_FAN = register("dead_lophelia_coral_fan", DeadCoralFanBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_FAN)))
val LOPHELIA_CORAL_FAN = register("lophelia_coral_fan", CoralFanBlock(DEAD_LOPHELIA_CORAL_FAN, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_FAN)))
val DEAD_LOPHELIA_CORAL_WALL_FAN = register("dead_lophelia_coral_wall_fan", DeadCoralWallFanBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_WALL_FAN)))
val LOPHELIA_CORAL_WALL_FAN = register("lophelia_coral_wall_fan", CoralWallFanBlock(DEAD_LOPHELIA_CORAL_WALL_FAN, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_WALL_FAN)))
val DEAD_LOPHELIA_CORAL = register("dead_lophelia_coral", DeadCoralBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL)))
val DEAD_LOPHELIA_CORAL_WALL_FAN = register("dead_lophelia_coral_wall_fan", DeadCoralWallFanBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_WALL_FAN).dropsLike(DEAD_LOPHELIA_CORAL)))
val LOPHELIA_CORAL = register("lophelia_coral", CoralBlock(DEAD_LOPHELIA_CORAL, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL)))
val LOPHELIA_CORAL_WALL_FAN = register("lophelia_coral_wall_fan", CoralWallFanBlock(DEAD_LOPHELIA_CORAL_WALL_FAN, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_WALL_FAN).dropsLike(LOPHELIA_CORAL)))
val DEAD_THORN_CORAL_BLOCK = register("dead_thorn_coral_block", DeadCoralBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_BLOCK).mapColor(MapColor.OFF_WHITE).instrument(Instrument.BASEDRUM).requiresTool().hardness(1.0F).sounds(BlockSoundGroup.CORAL)))
val THORN_CORAL_BLOCK = register("thorn_coral_block", CoralBlockBlock(DEAD_THORN_CORAL_BLOCK, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_BLOCK).mapColor(MapColor.OFF_WHITE).instrument(Instrument.BASEDRUM).requiresTool().hardness(1.0F).sounds(BlockSoundGroup.CORAL)))
val DEAD_THORN_CORAL_FAN = register("dead_thorn_coral_fan", DeadCoralFanBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_FAN)))
val THORN_CORAL_FAN = register("thorn_coral_fan", CoralFanBlock(DEAD_THORN_CORAL_FAN, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_FAN)))
val DEAD_THORN_CORAL_WALL_FAN = register("dead_thorn_coral_wall_fan", DeadCoralWallFanBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_WALL_FAN)))
val THORN_CORAL_WALL_FAN = register("thorn_coral_wall_fan", CoralWallFanBlock(DEAD_THORN_CORAL_WALL_FAN, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_WALL_FAN)))
val DEAD_THORN_CORAL = register("dead_thorn_coral", DeadCoralBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL)))
val DEAD_THORN_CORAL_WALL_FAN = register("dead_thorn_coral_wall_fan", DeadCoralWallFanBlock(FabricBlockSettings.copyOf(Blocks.DEAD_FIRE_CORAL_WALL_FAN).dropsLike(DEAD_THORN_CORAL)))
val THORN_CORAL = register("thorn_coral", CoralBlock(DEAD_THORN_CORAL, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL)))
val THORN_CORAL_WALL_FAN = register("thorn_coral_wall_fan", CoralWallFanBlock(DEAD_THORN_CORAL_WALL_FAN, FabricBlockSettings.copyOf(Blocks.FIRE_CORAL_WALL_FAN).dropsLike(THORN_CORAL)))

val GLOWSTICK = register("glowstick", GlowstickBlock(FabricBlockSettings.copyOf(Blocks.TORCH).noCollision().luminance(14).nonOpaque()))
val WALL_GLOWSTICK = register("wall_glowstick", WallTorchBlock(FabricBlockSettings.copyOf(Blocks.WALL_TORCH).noCollision().luminance(14).nonOpaque(), GLOW))
val GLOWSTICK = register("glowstick", GlowstickBlock(FabricBlockSettings.copyOf(Blocks.TORCH).noCollision().luminance(GlowstickBlock::luminance).nonOpaque()))
val WALL_GLOWSTICK = register("wall_glowstick", WallGlowstickBlock(FabricBlockSettings.copyOf(Blocks.WALL_TORCH).dropsLike(GLOWSTICK).noCollision().luminance(GlowstickBlock::luminance).nonOpaque()))

val TUBE_SPONGE = register("tube_sponge", TubeSpongeBlock(FabricBlockSettings.copyOf(Blocks.WET_SPONGE)
.nonOpaque()
Expand Down
48 changes: 48 additions & 0 deletions src/main/kotlin/dev/hybridlabs/aquatic/block/WallGlowstickBlock.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package dev.hybridlabs.aquatic.block

import net.minecraft.block.*
import net.minecraft.fluid.FluidState
import net.minecraft.fluid.Fluids
import net.minecraft.item.ItemPlacementContext
import net.minecraft.particle.ParticleTypes.GLOW
import net.minecraft.registry.tag.FluidTags
import net.minecraft.state.StateManager
import net.minecraft.state.property.Properties
import net.minecraft.util.math.BlockPos
import net.minecraft.util.math.Direction
import net.minecraft.world.WorldAccess
import net.minecraft.world.WorldView

class WallGlowstickBlock(settings: Settings) : WallTorchBlock(settings, GLOW), Waterloggable {
init {
defaultState = stateManager.defaultState.with(Properties.WATERLOGGED, false)
}

override fun getStateForNeighborUpdate(
state: BlockState,
direction: Direction,
neighborState: BlockState,
world: WorldAccess,
pos: BlockPos,
neighborPos: BlockPos
): BlockState {
if (state.get(Properties.WATERLOGGED)) {
world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world))
}

return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos)
}

override fun getPlacementState(context: ItemPlacementContext): BlockState? {
val fluidState = context.world.getFluidState(context.blockPos)
return super.getPlacementState(context)?.with(Properties.WATERLOGGED, fluidState == Fluids.WATER.getStill(false))
}

override fun getFluidState(state: BlockState): FluidState {
return if (state.get(Properties.WATERLOGGED)) Fluids.WATER.getStill(false) else super.getFluidState(state)
}

override fun appendProperties(builder: StateManager.Builder<Block, BlockState>) {
super.appendProperties(builder.add(Properties.WATERLOGGED))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ class LanguageProvider(output: FabricDataOutput) : FabricLanguageProvider(output
HybridAquaticBlocks.THORN_CORAL_FAN to "Thorn Coral Fan",
HybridAquaticBlocks.DEAD_THORN_CORAL_FAN to "Dead Thorn Coral Fan",
HybridAquaticBlocks.GLOWSTICK to "Glowstick",
HybridAquaticBlocks.WALL_GLOWSTICK to "Wall Glowstick",
HybridAquaticBlocks.DRIFTWOOD_LOG to "Driftwood Log",
HybridAquaticBlocks.DRIFTWOOD_WOOD to "Driftwood Wood",
HybridAquaticBlocks.STRIPPED_DRIFTWOOD_LOG to "Stripped Driftwood Log",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@ import dev.hybridlabs.aquatic.block.HybridAquaticBlocks
import dev.hybridlabs.aquatic.block.entity.MessageInABottleBlockEntity.Companion.MESSAGE_KEY
import dev.hybridlabs.aquatic.block.entity.MessageInABottleBlockEntity.Companion.VARIANT_KEY
import dev.hybridlabs.aquatic.data.HybridAquaticDataGenerator.filterHybridAquatic
import dev.hybridlabs.aquatic.item.HybridAquaticItems
import dev.hybridlabs.aquatic.loot.HybridAquaticLootTables
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider
import net.minecraft.block.Blocks
import net.minecraft.block.CoralWallFanBlock
import net.minecraft.block.DeadCoralWallFanBlock
import net.minecraft.block.WallTorchBlock
import net.minecraft.item.BlockItem.BLOCK_ENTITY_TAG_KEY
import net.minecraft.item.Items
import net.minecraft.item.WrittenBookItem.*
Expand Down Expand Up @@ -50,7 +54,6 @@ class BlockLootTableProvider(output: FabricDataOutput) : FabricBlockLootTablePro
addDrop(HybridAquaticBlocks.DRIFTWOOD_DOOR, doorDrops(HybridAquaticBlocks.DRIFTWOOD_DOOR))

addDrop(HybridAquaticBlocks.GLOWSTICK)
addDrop(Blocks.TORCH)

//endregion

Expand Down Expand Up @@ -251,7 +254,10 @@ class BlockLootTableProvider(output: FabricDataOutput) : FabricBlockLootTablePro
// generate remaining drops
Registries.BLOCK
.filter(filterHybridAquatic(Registries.BLOCK))
.filter { block -> block.lootTableId !in lootTables }
.filter { block ->
block !is WallTorchBlock && block !is DeadCoralWallFanBlock
&& block.lootTableId !in lootTables
}
.forEach(::addDrop)
}
}
16 changes: 11 additions & 5 deletions src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import net.minecraft.item.*
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.util.Identifier
import net.minecraft.util.math.Direction

object HybridAquaticItems {

Expand Down Expand Up @@ -424,7 +425,8 @@ object HybridAquaticItems {
val TIGER_SHARK_PLUSHIE = registerBlockItem("tiger_shark_plushie", HybridAquaticBlocks.TIGER_SHARK_PLUSHIE)
val WHALE_SHARK_PLUSHIE = registerBlockItem("whale_shark_plushie", HybridAquaticBlocks.WHALE_SHARK_PLUSHIE)

val GLOWSTICK = registerBlockItem("glowstick", HybridAquaticBlocks.GLOWSTICK)
val GLOWSTICK = registerVerticallyAttachable("glowstick", HybridAquaticBlocks.GLOWSTICK, HybridAquaticBlocks.WALL_GLOWSTICK)

val HYBRID_CRATE = registerBlockItem("hybrid_crate", HybridAquaticBlocks.HYBRID_CRATE)
val DRIFTWOOD_CRATE = registerBlockItem("driftwood_crate", HybridAquaticBlocks.DRIFTWOOD_CRATE)
val OAK_CRATE = registerBlockItem("oak_crate", HybridAquaticBlocks.OAK_CRATE)
Expand Down Expand Up @@ -454,14 +456,14 @@ object HybridAquaticItems {
val DEAD_LOPHELIA_CORAL_BLOCK = registerBlockItem("dead_lophelia_coral_block", HybridAquaticBlocks.DEAD_LOPHELIA_CORAL_BLOCK)
val LOPHELIA_CORAL = registerBlockItem("lophelia_coral", HybridAquaticBlocks.LOPHELIA_CORAL)
val DEAD_LOPHELIA_CORAL = registerBlockItem("dead_lophelia_coral", HybridAquaticBlocks.DEAD_LOPHELIA_CORAL)
val LOPHELIA_CORAL_FAN = registerBlockItem("lophelia_coral_fan", HybridAquaticBlocks.LOPHELIA_CORAL_FAN)
val DEAD_LOPHELIA_CORAL_FAN = registerBlockItem("dead_lophelia_coral_fan", HybridAquaticBlocks.DEAD_LOPHELIA_CORAL_FAN)
val LOPHELIA_CORAL_FAN = registerVerticallyAttachable("lophelia_coral_fan", HybridAquaticBlocks.LOPHELIA_CORAL_FAN, HybridAquaticBlocks.LOPHELIA_CORAL_WALL_FAN)
val DEAD_LOPHELIA_CORAL_FAN = registerVerticallyAttachable("dead_lophelia_coral_fan", HybridAquaticBlocks.DEAD_LOPHELIA_CORAL_FAN, HybridAquaticBlocks.DEAD_LOPHELIA_CORAL_WALL_FAN)
val THORN_CORAL_BLOCK = registerBlockItem("thorn_coral_block", HybridAquaticBlocks.THORN_CORAL_BLOCK)
val DEAD_THORN_CORAL_BLOCK = registerBlockItem("dead_thorn_coral_block", HybridAquaticBlocks.DEAD_THORN_CORAL_BLOCK)
val THORN_CORAL = registerBlockItem("thorn_coral", HybridAquaticBlocks.THORN_CORAL)
val DEAD_THORN_CORAL = registerBlockItem("dead_thorn_coral", HybridAquaticBlocks.DEAD_THORN_CORAL)
val THORN_CORAL_FAN = registerBlockItem("thorn_coral_fan", HybridAquaticBlocks.THORN_CORAL_FAN)
val DEAD_THORN_CORAL_FAN = registerBlockItem("dead_thorn_coral_fan", HybridAquaticBlocks.DEAD_THORN_CORAL_FAN)
val THORN_CORAL_FAN = registerVerticallyAttachable("thorn_coral_fan", HybridAquaticBlocks.THORN_CORAL_FAN, HybridAquaticBlocks.THORN_CORAL_WALL_FAN)
val DEAD_THORN_CORAL_FAN = registerVerticallyAttachable("dead_thorn_coral_fan", HybridAquaticBlocks.DEAD_THORN_CORAL_FAN, HybridAquaticBlocks.DEAD_THORN_CORAL_WALL_FAN)

// fish spawn eggs
val ANGLERFISH_SPAWN_EGG = registerSpawnEgg("anglerfish_spawn_egg", HybridAquaticEntityTypes.ANGLERFISH, 0x4d4848, 0xc4faff)
Expand Down Expand Up @@ -570,4 +572,8 @@ object HybridAquaticItems {
private fun registerPlaceableInWaterBlockItem(id: String, block: Block): Item {
return register(id, PlaceableInWaterItem(block, FabricItemSettings()))
}

private fun registerVerticallyAttachable(id: String, standingBlock: Block, wallBlock: Block, direction: Direction = Direction.DOWN): Item {
return register(id, VerticallyAttachableBlockItem(standingBlock, wallBlock, FabricItemSettings(), direction))
}
}

0 comments on commit c70f287

Please sign in to comment.