Skip to content

Commit

Permalink
Use block tag for assemble blacklist (#413)
Browse files Browse the repository at this point in the history
* Use block tag for assemble blacklist

resolves #369

* removed duplicate bedrock

* re-added blockBlacklist config

* Update ShipHelmBlockEntity.kt
  • Loading branch information
millennIumAMbiguity authored Oct 8, 2024
1 parent 043c0c2 commit d34bfe6
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 99 deletions.
103 changes: 5 additions & 98 deletions common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -151,104 +151,6 @@ object EurekaConfig {
@JsonSchema(description = "Chance for popped balloons to pop adjacent balloons, per side")
var popSideBalloonChance = 0.3

// Blacklist of blocks that don't get added for ship building
@JsonSchema(description = "Blacklist of blocks that don't get assembled")
var blockBlacklist = setOf(
"vs_eureka:ship_helm",
"minecraft:dirt",
"minecraft:grass_block",
"minecraft:grass_path",
"minecraft:stone",
"minecraft:bedrock",
"minecraft:sand",
"minecraft:gravel",
"minecraft:water",
"minecraft:flowing_water",
"minecraft:lava",
"minecraft:flowing_lava",
"minecraft:lily_pad",
"minecraft:coarse_dirt",
"minecraft:podzol",
"minecraft:granite",
"minecraft:diorite",
"minecraft:andesite",
"minecraft:deepslate",
"minecraft:tuff",
"minecraft:crimson_nylium",
"minecraft:warped_nylium",
"minecraft:red_sand",
"minecraft:sandstone",
"minecraft:end_stone",
"minecraft:red_sandstone",
"minecraft:blackstone",
"minecraft:netherrack",
"minecraft:soul_sand",
"minecraft:soul_soil",
"minecraft:grass",
"minecraft:fern",
"minecraft:dead_bush",
"minecraft:seagrass",
"minecraft:tall_seagrass",
"minecraft:sea_pickle",
"minecraft:kelp",
"minecraft:bamboo",
"minecraft:dandelion",
"minecraft:poppy",
"minecraft:blue_orchid",
"minecraft:allium",
"minecraft:azure_bluet",
"minecraft:red_tulip",
"minecraft:orange_tulip",
"minecraft:white_tulip",
"minecraft:pink_tulip",
"minecraft:oxeye_daisy",
"minecraft:cornflower",
"minecraft:lily_of_the_valley",
"minecraft:brown_mushroom",
"minecraft:red_mushroom",
"minecraft:crimson_fungus",
"minecraft:warped_fungus",
"minecraft:crimson_roots",
"minecraft:warped_roots",
"minecraft:nether_sprouts",
"minecraft:weeping_vines",
"minecraft:twisting_vines",
"minecraft:chorus_plant",
"minecraft:chorus_flower",
"minecraft:snow",
"minecraft:snow_block",
"minecraft:cactus",
"minecraft:vine",
"minecraft:sunflower",
"minecraft:lilac",
"minecraft:rose_bush",
"minecraft:peony",
"minecraft:tall_grass",
"minecraft:large_fern",
"minecraft:air",
"minecraft:ice",
"minecraft:packed_ice",
"minecraft:blue_ice",
"minecraft:portal",
"minecraft:bedrock",
"minecraft:end_portal_frame",
"minecraft:end_portal",
"minecraft:end_gateway",
"minecraft:portal",
"minecraft:oak_sapling",
"minecraft:spruce_sapling",
"minecraft:birch_sapling",
"minecraft:jungle_sapling",
"minecraft:acacia_sapling",
"minecraft:dark_oak_sapling",
"minecraft:oak_leaves",
"minecraft:spruce_leaves",
"minecraft:birch_leaves",
"minecraft:jungle_leaves",
"minecraft:acacia_leaves",
"minecraft:dark_oak_leaves"
)

@JsonSchema(description = "Whether the ship helm assembles diagonally connected blocks or not")
val diagonals = true

Expand All @@ -263,5 +165,10 @@ object EurekaConfig {

@JsonSchema(description = "Maximum number of blocks allowed in a ship. Set to 0 for no limit")
val maxShipBlocks = 32 * 32 * 32

// TODO: Remove blockBlacklist
// Blacklist of blocks that don't get added for ship building
@JsonSchema(description = "Blacklist of blocks that don't get assembled (Use Block Tag instead)")
var blockBlacklist : Set<String> = emptySet()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@ import net.minecraft.core.Registry
import net.minecraft.network.chat.Component
import net.minecraft.network.chat.TextComponent
import net.minecraft.network.chat.TranslatableComponent
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.tags.TagKey
import net.minecraft.world.MenuProvider
import net.minecraft.world.entity.player.Inventory
import net.minecraft.world.entity.player.Player
import net.minecraft.world.inventory.AbstractContainerMenu
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.HorizontalDirectionalBlock
import net.minecraft.world.level.block.StairBlock
import net.minecraft.world.level.block.entity.BlockEntity
Expand All @@ -26,6 +29,7 @@ import org.valkyrienskies.core.api.ships.getAttachment
import org.valkyrienskies.core.impl.util.logger
import org.valkyrienskies.eureka.EurekaBlockEntities
import org.valkyrienskies.eureka.EurekaConfig
import org.valkyrienskies.eureka.EurekaMod
import org.valkyrienskies.eureka.block.ShipHelmBlock
import org.valkyrienskies.eureka.gui.shiphelm.ShipHelmScreenMenu
import org.valkyrienskies.eureka.ship.EurekaShipControl
Expand All @@ -36,6 +40,9 @@ import org.valkyrienskies.mod.common.getShipObjectManagingPos
import org.valkyrienskies.mod.common.util.toDoubles
import org.valkyrienskies.mod.common.util.toJOMLD

var ASSEMBLE_BLACKLIST: TagKey<Block> =
TagKey.create(Registry.BLOCK_REGISTRY, ResourceLocation(EurekaMod.MOD_ID, "assemble_blacklist"))

class ShipHelmBlockEntity(pos: BlockPos, state: BlockState) :
BlockEntity(EurekaBlockEntities.SHIP_HELM.get(), pos, state), MenuProvider {

Expand Down Expand Up @@ -125,7 +132,10 @@ class ShipHelmBlockEntity(pos: BlockPos, state: BlockState) :
val builtShip = ShipAssembler.collectBlocks(
level,
blockPos
) { !it.isAir && !EurekaConfig.SERVER.blockBlacklist.contains(Registry.BLOCK.getKey(it.block).toString()) }
) { !it.isAir && !it.`is`(ASSEMBLE_BLACKLIST) &&
// TODO: Remove blockBlacklist
!(EurekaConfig.SERVER.blockBlacklist.isNotEmpty() && EurekaConfig.SERVER.blockBlacklist.contains(Registry.BLOCK.getKey(it.block).toString()))
}

if (builtShip == null) {
player.sendMessage(TextComponent("Ship is too big! Max size is ${EurekaConfig.SERVER.maxShipBlocks} blocks (changeable in the config)"), Util.NIL_UUID)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"replace": false,
"values": [
"#minecraft:base_stone_nether",
"#minecraft:base_stone_overworld",
"#minecraft:flowers",
"#minecraft:leaves",
"#minecraft:portals",
"#minecraft:replaceable_plants",
"#minecraft:saplings",
"#minecraft:snow",
"#minecraft:tall_flowers",
"minecraft:air",
"minecraft:bamboo",
"minecraft:bamboo_sapling",
"minecraft:bedrock",
"minecraft:big_dripleaf",
"minecraft:blue_ice",
"minecraft:brown_mushroom",
"minecraft:cactus",
"minecraft:chorus_flower",
"minecraft:chorus_plant",
"minecraft:clay",
"minecraft:coarse_dirt",
"minecraft:crimson_fungus",
"minecraft:crimson_nylium",
"minecraft:crimson_roots",
"minecraft:dirt",
"minecraft:dirt_path",
"minecraft:dripstone_block",
"minecraft:end_gateway",
"minecraft:end_portal_frame",
"minecraft:end_stone",
"minecraft:grass_block",
"minecraft:gravel",
"minecraft:ice",
"minecraft:kelp",
"minecraft:kelp_plant",
"minecraft:lava",
"minecraft:lily_pad",
"minecraft:mycelium",
"minecraft:nether_sprouts",
"minecraft:packed_ice",
"minecraft:podzol",
"minecraft:pointed_dripstone",
"minecraft:red_mushroom",
"minecraft:red_sand",
"minecraft:red_sandstone",
"minecraft:sand",
"minecraft:sandstone",
"minecraft:sea_pickle",
"minecraft:seagrass",
"minecraft:small_dripleaf",
"minecraft:soul_sand",
"minecraft:soul_soil",
"minecraft:tall_seagrass",
"minecraft:twisting_vines",
"minecraft:warped_fungus",
"minecraft:warped_nylium",
"minecraft:warped_roots",
"minecraft:water",
"minecraft:weeping_vines"
]
}

0 comments on commit d34bfe6

Please sign in to comment.