New Item to replace endstone within th ebounds of clicked structure block

This commit is contained in:
Frank 2023-06-11 16:11:31 +02:00
parent ef8554d355
commit ee94b4eebf
3 changed files with 38 additions and 0 deletions

View file

@ -10,6 +10,7 @@ import org.betterx.bclib.items.tool.BaseShovelItem;
import org.betterx.bclib.items.tool.BaseSwordItem; import org.betterx.bclib.items.tool.BaseSwordItem;
import org.betterx.bclib.registry.BaseRegistry; import org.betterx.bclib.registry.BaseRegistry;
import org.betterx.bclib.registry.ItemRegistry; import org.betterx.bclib.registry.ItemRegistry;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.betterend.BetterEnd; import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.config.Configs; import org.betterx.betterend.config.Configs;
import org.betterx.betterend.item.*; import org.betterx.betterend.item.*;
@ -21,7 +22,9 @@ import org.betterx.betterend.world.structures.village.VillagePools;
import org.betterx.datagen.betterend.recipes.EndChestLootTableProvider; import org.betterx.datagen.betterend.recipes.EndChestLootTableProvider;
import net.minecraft.core.Holder; import net.minecraft.core.Holder;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
@ -29,6 +32,8 @@ import net.minecraft.world.entity.Mob;
import net.minecraft.world.food.FoodProperties; import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.food.Foods; import net.minecraft.world.food.Foods;
import net.minecraft.world.item.*; import net.minecraft.world.item.*;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.StructureBlockEntity;
import java.util.List; import java.util.List;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
@ -425,6 +430,37 @@ public class EndItems {
Items.LANTERN Items.LANTERN
) )
); );
registerEndItem(
"debug/fill_base_void",
new DebugDataItem((player, entity, useOnContext) -> {
if (entity instanceof StructureBlockEntity e) {
final var level = useOnContext.getLevel();
final var offset = e.getStructurePos();
var size = e.getStructureSize();
var pos = useOnContext.getClickedPos().offset(offset);
for (int x = 0; x < size.getX(); x++) {
for (int y = 0; y < size.getY(); y++) {
for (int z = 0; z < size.getZ(); z++) {
var blockPos = pos.offset(x, y, z);
var state = level.getBlockState(blockPos);
if (state.is(Blocks.END_STONE)) {
level.setBlock(
blockPos,
Blocks.STRUCTURE_VOID.defaultBlockState(),
BlocksHelper.SET_SILENT
);
}
}
}
}
return InteractionResult.SUCCESS;
}
return InteractionResult.FAIL;
}, false, BuiltInRegistries.ITEM.getKey(Items.BUCKET))
);
} }
} }
} }

View file

@ -792,6 +792,7 @@
"item.betterend.crystalite_helmet": "Kristallithelm", "item.betterend.crystalite_helmet": "Kristallithelm",
"item.betterend.crystalite_leggings": "Kristallitbeinschutz", "item.betterend.crystalite_leggings": "Kristallitbeinschutz",
"item.betterend.crystalline_sulphur": "Schwefel", "item.betterend.crystalline_sulphur": "Schwefel",
"item.betterend.debug.fill_base_void": "Endstein in Structure-Block-Volumen ersetzen [dev]",
"item.betterend.debug.jigsaw_big_deco": "Große Deko [dev]", "item.betterend.debug.jigsaw_big_deco": "Große Deko [dev]",
"item.betterend.debug.jigsaw_deco": "Kleine Deko [dev]", "item.betterend.debug.jigsaw_deco": "Kleine Deko [dev]",
"item.betterend.debug.jigsaw_entrance": "Hauseingang [dev]", "item.betterend.debug.jigsaw_entrance": "Hauseingang [dev]",

View file

@ -792,6 +792,7 @@
"item.betterend.crystalite_helmet": "Crystalite Helmet", "item.betterend.crystalite_helmet": "Crystalite Helmet",
"item.betterend.crystalite_leggings": "Crystalite Leggings", "item.betterend.crystalite_leggings": "Crystalite Leggings",
"item.betterend.crystalline_sulphur": "Sulfur", "item.betterend.crystalline_sulphur": "Sulfur",
"item.betterend.debug.fill_base_void": "Replace EndStone in Structure Block Bounds [dev]",
"item.betterend.debug.jigsaw_big_deco": "Large Decoration [dev]", "item.betterend.debug.jigsaw_big_deco": "Large Decoration [dev]",
"item.betterend.debug.jigsaw_deco": "Small Decoration [dev]", "item.betterend.debug.jigsaw_deco": "Small Decoration [dev]",
"item.betterend.debug.jigsaw_entrance": "Entrance [dev]", "item.betterend.debug.jigsaw_entrance": "Entrance [dev]",