diff --git a/src/main/java/net/Chipperfluff/chipi/ChipiMod.java b/src/main/java/net/Chipperfluff/chipi/ChipiMod.java index d74da3e..110b34c 100644 --- a/src/main/java/net/Chipperfluff/chipi/ChipiMod.java +++ b/src/main/java/net/Chipperfluff/chipi/ChipiMod.java @@ -15,7 +15,7 @@ import net.minecraft.structure.StructureTemplate; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.GameRules; - +import net.Chipperfluff.chipi.item.ModItemGroups; import net.fabricmc.fabric.api.biome.v1.BiomeModifications; import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; import net.minecraft.registry.RegistryKey; @@ -39,6 +39,7 @@ public class ChipiMod implements ModInitializer { ModBlocks.register(); ModItems.register(); + ModItemGroups.register(); ModCriteria.register(); BiomeModifications.addFeature( diff --git a/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java b/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java index ec2efec..93b9aef 100644 --- a/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java +++ b/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java @@ -13,6 +13,9 @@ public class ModCriteria { public static final VoidConsumedTrigger VOID_CONSUMED_TRIGGER = Criteria.register(new VoidConsumedTrigger()); + public static final VoidConsumedFireTrigger VOID_CONSUMED_FIRE_TRIGGER = + Criteria.register(new VoidConsumedFireTrigger()); + public static void register() { // classload trigger } diff --git a/src/main/java/net/Chipperfluff/chipi/advancement/VoidConsumedFireTrigger.java b/src/main/java/net/Chipperfluff/chipi/advancement/VoidConsumedFireTrigger.java new file mode 100644 index 0000000..55419e3 --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/advancement/VoidConsumedFireTrigger.java @@ -0,0 +1,40 @@ +package net.Chipperfluff.chipi.advancement; + +import com.google.gson.JsonObject; +import net.minecraft.advancement.criterion.AbstractCriterion; +import net.minecraft.advancement.criterion.AbstractCriterionConditions; +import net.minecraft.predicate.entity.AdvancementEntityPredicateDeserializer; +import net.minecraft.predicate.entity.LootContextPredicate; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Identifier; + +public class VoidConsumedFireTrigger + extends AbstractCriterion { + + public static final Identifier ID = + new Identifier("chipi", "void_consumed_fire"); + + @Override + public Identifier getId() { + return ID; + } + + @Override + protected Conditions conditionsFromJson( + JsonObject json, + LootContextPredicate player, + AdvancementEntityPredicateDeserializer deserializer + ) { + return new Conditions(player); + } + + public void trigger(ServerPlayerEntity player) { + this.trigger(player, conditions -> true); + } + + public static class Conditions extends AbstractCriterionConditions { + public Conditions(LootContextPredicate player) { + super(ID, player); + } + } +} diff --git a/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java b/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java index 624c31c..4000b99 100644 --- a/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java +++ b/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java @@ -5,18 +5,17 @@ import net.minecraft.block.BlockState; import net.minecraft.block.ShapeContext; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.network.packet.s2c.play.PositionFlag; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import net.minecraft.world.TeleportTarget; -import net.minecraft.network.packet.s2c.play.PositionFlag; + import java.util.EnumSet; public class ChipperPortalBlock extends Block { @@ -25,6 +24,7 @@ public class ChipperPortalBlock extends Block { super(settings); } + // Walk-through portal @Override public VoxelShape getCollisionShape( BlockState state, @@ -54,29 +54,34 @@ public class ChipperPortalBlock extends Block { if (targetWorld == null) return; - TeleportTarget target = new TeleportTarget( - new Vec3d(5.5, 90, 5.5), - Vec3d.ZERO, - player.getYaw(), - player.getPitch() - ); + // SAFE spawn position inside your dungeon + BlockPos spawn = new BlockPos(5, 90, 6); + + // Safety: make sure feet are not in air + if (!targetWorld.getBlockState(spawn.down()).isSolidBlock(targetWorld, spawn.down())) { + spawn = spawn.up(); + } player.teleport( - targetWorld, - 5.5, - 88.0, - 6.5, - EnumSet.noneOf(PositionFlag.class), - player.getYaw(), - player.getPitch() + targetWorld, + spawn.getX() + 0.5, + spawn.getY(), + spawn.getZ() + 0.5, + EnumSet.noneOf(PositionFlag.class), + player.getYaw(), + player.getPitch() ); } @Override - public float calcBlockBreakingDelta(BlockState state, PlayerEntity player, BlockView world, BlockPos pos) { - if (!player.isCreative()) { - return 0.0F; - } - return super.calcBlockBreakingDelta(state, player, world, pos); + public float calcBlockBreakingDelta( + BlockState state, + PlayerEntity player, + BlockView world, + BlockPos pos + ) { + return player.isCreative() + ? super.calcBlockBreakingDelta(state, player, world, pos) + : 0.0F; } } diff --git a/src/main/java/net/Chipperfluff/chipi/block/VoidBlock.java b/src/main/java/net/Chipperfluff/chipi/block/VoidBlock.java index f3a5598..94d217c 100644 --- a/src/main/java/net/Chipperfluff/chipi/block/VoidBlock.java +++ b/src/main/java/net/Chipperfluff/chipi/block/VoidBlock.java @@ -17,7 +17,6 @@ import net.minecraft.world.World; import net.Chipperfluff.chipi.advancement.ModCriteria; import net.minecraft.server.network.ServerPlayerEntity; - public class VoidBlock extends Block { public VoidBlock(Settings settings) { @@ -40,23 +39,33 @@ public class VoidBlock extends Block { } } - RegistryEntry voidType = world + boolean burning = living.isOnFire(); + + Identifier damageId = burning + ? new Identifier("chipi", "void_block_fire") + : new Identifier("chipi", "void_block"); + + RegistryEntry damageType = world .getRegistryManager() .get(RegistryKeys.DAMAGE_TYPE) .entryOf( RegistryKey.of( RegistryKeys.DAMAGE_TYPE, - new Identifier("chipi", "void_block") + damageId ) ); - DamageSource voidSource = new DamageSource(voidType); + DamageSource source = new DamageSource(damageType); if (living instanceof ServerPlayerEntity serverPlayer) { - ModCriteria.VOID_CONSUMED_TRIGGER.trigger(serverPlayer); + if (burning) { + ModCriteria.VOID_CONSUMED_FIRE_TRIGGER.trigger(serverPlayer); + } else { + ModCriteria.VOID_CONSUMED_TRIGGER.trigger(serverPlayer); + } } - living.damage(voidSource, Float.MAX_VALUE); + living.damage(source, Float.MAX_VALUE); } } diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java b/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java new file mode 100644 index 0000000..5210538 --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java @@ -0,0 +1,43 @@ +package net.Chipperfluff.chipi.item; + +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.Chipperfluff.chipi.ChipiMod; +import net.Chipperfluff.chipi.block.ModBlocks; +import net.Chipperfluff.chipi.item.ModItems; + +public class ModItemGroups { + + public static final ItemGroup CHIPI_GROUP = Registry.register( + Registries.ITEM_GROUP, + new Identifier(ChipiMod.MOD_ID, "chipi"), + FabricItemGroup.builder() + .displayName(Text.translatable("itemGroup.chipi.chipi")) + .icon(() -> new ItemStack(ModBlocks.VOID_BLOCK.asItem())) + .entries((context, entries) -> { + + // Blocks + entries.add(ModBlocks.VOID_BLOCK); + entries.add(ModBlocks.CHIPPER_FRAME); + entries.add(ModBlocks.CHIPPER_PORTAL); + entries.add(ModBlocks.CHIPPER_ORE); + entries.add(ModBlocks.CHIPPER_ALLOY_BLOCK); + + // Items + entries.add(ModItems.NUT); + entries.add(ModItems.RAW_CHIPPER_ORE); + entries.add(ModItems.CHIPPER_INGOT); + entries.add(ModItems.CHIPPER_ALLOY); + }) + .build() + ); + + public static void register() { + // force class load + } +} diff --git a/src/main/java/net/Chipperfluff/chipi/world/gen/ChipiDungeonGenerator.java b/src/main/java/net/Chipperfluff/chipi/world/gen/ChipiDungeonGenerator.java index 3febbb7..b0374e4 100644 --- a/src/main/java/net/Chipperfluff/chipi/world/gen/ChipiDungeonGenerator.java +++ b/src/main/java/net/Chipperfluff/chipi/world/gen/ChipiDungeonGenerator.java @@ -1,14 +1,11 @@ package net.Chipperfluff.chipi.world.gen; +import net.Chipperfluff.chipi.world.gen.DungeonContext; import net.Chipperfluff.chipi.world.gen.struct.CorridorEWStructure; import net.Chipperfluff.chipi.world.gen.struct.CorridorNSStructure; import net.Chipperfluff.chipi.world.gen.struct.RoomBaseStructure; import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.enums.BlockHalf; import net.minecraft.server.world.ServerWorld; -import net.minecraft.state.property.Properties; -import net.minecraft.util.math.Direction; import net.minecraft.util.math.BlockPos; public class ChipiDungeonGenerator { @@ -33,18 +30,6 @@ public class ChipiDungeonGenerator { private static final int ROWS_SOUTH = 40; // rows of rooms south of spawn (spawn room itself is already placed) private static final int COLS_EW = 40; // columns across X (split roughly evenly around center) - private static RoomBaseStructure getRoom() { - return new RoomBaseStructure(); - } - - private static CorridorNSStructure getTunnelNS() { - return new CorridorNSStructure(); - } - - private static CorridorEWStructure getTunnelEW() { - return new CorridorEWStructure(); - } - private ChipiDungeonGenerator() {} public static void generateInitialLayout(ServerWorld world, BlockPos portalSpawnPos) { @@ -54,13 +39,11 @@ public class ChipiDungeonGenerator { BlockPos firstCorridorAnchor = new BlockPos(5, CORRIDOR_Y, 11); BlockPos firstGeneratedRoomCenter = new BlockPos(5, ROOM_Y, 24); // explicit first floor anchor - // First room/corridor use direct instances as requested. - RoomBaseStructure firstRoom = new RoomBaseStructure(); - CorridorNSStructure firstCorridor = new CorridorNSStructure(); + DungeonContext ctx = DungeonContext.EMPTY; - RoomBaseStructure room = getRoom(); - CorridorNSStructure corridorNS = getTunnelNS(); - CorridorEWStructure corridorEW = getTunnelEW(); + // First room/corridor use direct instances as requested. + RoomBaseStructure firstRoom = WorldMaster.getDefaultRoom(); + CorridorNSStructure firstCorridor = WorldMaster.getDefaultCorridorNS(); // Place the first room (absolute coordinates). firstRoom.placeAt(world, firstGeneratedRoomCenter); @@ -75,11 +58,16 @@ public class ChipiDungeonGenerator { // Place rooms strictly southward (Z never decreases), across X in both directions. for (int row = 0; row < ROWS_SOUTH; row++) { for (int col = minCol; col <= maxCol; col++) { + int gridX = col; // grid 0,0 is the first generated room; -X -> negative gridX, +X -> positive gridX + int gridY = row; // gridY increases southward only + BlockPos center = new BlockPos( firstGeneratedRoomCenter.getX() + (col * STEP_X), ROOM_Y, firstGeneratedRoomCenter.getZ() + (row * STEP_Z) ); + + RoomBaseStructure room = WorldMaster.resolveRoom(gridX, gridY, ctx); room.placeAt(world, center); } } @@ -87,6 +75,9 @@ public class ChipiDungeonGenerator { // Connect each room to the next one south with a corridor at fixed Y (no northward connections). for (int row = 0; row < ROWS_SOUTH - 1; row++) { for (int col = minCol; col <= maxCol; col++) { + int gridX = col; + int gridY = row; + BlockPos currentCenter = new BlockPos( firstGeneratedRoomCenter.getX() + (col * STEP_X), ROOM_Y, @@ -99,6 +90,7 @@ public class ChipiDungeonGenerator { currentCenter.getZ() + ROOM_EXTENT_SOUTH ); + CorridorNSStructure corridorNS = WorldMaster.resolveCorridorNS(gridX, gridY, ctx); corridorNS.placeAt(world, anchorSouth); } } @@ -106,6 +98,9 @@ public class ChipiDungeonGenerator { // Connect east-west neighbors in each row. for (int row = 0; row < ROWS_SOUTH; row++) { for (int col = minCol; col < maxCol; col++) { + int gridX = col; + int gridY = row; + BlockPos currentCenter = new BlockPos( firstGeneratedRoomCenter.getX() + (col * STEP_X), ROOM_Y, @@ -118,6 +113,7 @@ public class ChipiDungeonGenerator { currentCenter.getZ() ); + CorridorEWStructure corridorEW = WorldMaster.resolveCorridorEW(gridX, gridY, ctx); corridorEW.placeAt(world, anchorEast); } } diff --git a/src/main/java/net/Chipperfluff/chipi/world/gen/DungeonContext.java b/src/main/java/net/Chipperfluff/chipi/world/gen/DungeonContext.java new file mode 100644 index 0000000..b89ef73 --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/world/gen/DungeonContext.java @@ -0,0 +1,11 @@ +package net.Chipperfluff.chipi.world.gen; + +/** + * Placeholder context for dungeon generation decisions. + * Will later hold seed, reservations, phases, etc. + */ +public final class DungeonContext { + public static final DungeonContext EMPTY = new DungeonContext(); + + private DungeonContext() {} +} diff --git a/src/main/java/net/Chipperfluff/chipi/world/gen/WorldMaster.java b/src/main/java/net/Chipperfluff/chipi/world/gen/WorldMaster.java new file mode 100644 index 0000000..73935fe --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/world/gen/WorldMaster.java @@ -0,0 +1,65 @@ +package net.Chipperfluff.chipi.world.gen; + +import net.Chipperfluff.chipi.world.gen.struct.CorridorEWStructure; +import net.Chipperfluff.chipi.world.gen.struct.CorridorNSStructure; +import net.Chipperfluff.chipi.world.gen.struct.RoomBaseStructure; + +public final class WorldMaster { + + private WorldMaster() {} + + public static RoomBaseStructure getDefaultRoom() { + return new RoomBaseStructure(); + } + + public static CorridorNSStructure getDefaultCorridorNS() { + return new CorridorNSStructure(); + } + + public static CorridorEWStructure getDefaultCorridorEW() { + return new CorridorEWStructure(); + } + + /** + * Decide which ROOM exists at this grid position. + * + * @param gridX logical dungeon grid X + * @param gridY logical dungeon grid Y + * @param ctx snapshot of dungeon state (seed, reserved map, phase, etc.) + */ + public static RoomBaseStructure resolveRoom( + int gridX, + int gridY, + DungeonContext ctx + ) { + // later: + // - check reserved HashMap + // - check spawn/boss rules + // - check generation phase + // - check random seed + + return getDefaultRoom(); + } + + /** + * Decide which NORTH-SOUTH corridor exists at this grid position. + */ + public static CorridorNSStructure resolveCorridorNS( + int gridX, + int gridY, + DungeonContext ctx + ) { + return getDefaultCorridorNS(); + } + + /** + * Decide which EAST-WEST corridor exists at this grid position. + */ + public static CorridorEWStructure resolveCorridorEW( + int gridX, + int gridY, + DungeonContext ctx + ) { + return getDefaultCorridorEW(); + } +} diff --git a/src/main/resources/assets/chipi/lang/en_us.json b/src/main/resources/assets/chipi/lang/en_us.json index e50e08e..4281a9d 100644 --- a/src/main/resources/assets/chipi/lang/en_us.json +++ b/src/main/resources/assets/chipi/lang/en_us.json @@ -1,5 +1,8 @@ { - "death.attack.void_block": "%1$s stepped beyond safety and the Outside took them", + "death.attack.void_block": "§8%1$s stepped beyond safety — the Outside answered.", + "death.attack.chipi.void_block_fire": "§c%1$s tried to save themselves.§r §8It got worse.", + + "itemGroup.chipi.chipi": "Chipi", "block.chipi.void_block": "Void Block", "block.chipi.chipper_frame": "Chipper Frame", diff --git a/src/main/resources/data/chipi/advancements/progression/consume_nut.json b/src/main/resources/data/chipi/advancements/progression/consume_nut.json index 35b0ebc..fa66604 100644 --- a/src/main/resources/data/chipi/advancements/progression/consume_nut.json +++ b/src/main/resources/data/chipi/advancements/progression/consume_nut.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:nut" }, "title": "Nutty Preworkout", - "description": "Munch a nut to impress the gym-rat squirrels", + "description": "Munch a nut to impress the swole floofs, uwu", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/consumed_by_void_fire.json b/src/main/resources/data/chipi/advancements/progression/consumed_by_void_fire.json new file mode 100644 index 0000000..055a692 --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/consumed_by_void_fire.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:root", + "display": { + "icon": { "item": "minecraft:lava_bucket" }, + "title": "That Didn’t Help", + "description": "Tried to save yourself. Landed somewhere even worse.", + "frame": "challenge", + "hidden": true, + "show_toast": true, + "announce_to_chat": false + }, + "criteria": { + "burning_void": { + "trigger": "chipi:void_consumed_fire" + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json b/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json index 6a317cf..436e0b1 100644 --- a/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json +++ b/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json @@ -2,8 +2,8 @@ "parent": "chipi:progression/light_portal", "display": { "icon": { "item": "chipi:chipper_portal" }, - "title": "Into the Twink Zone", - "description": "Leap through the portal and let the feral squirrels judge you", + "title": "Into the Nya Zone", + "description": "Leap through the portal; feral fluffers judge you with big eyes, nya", "frame": "challenge" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/get_nut.json b/src/main/resources/data/chipi/advancements/progression/get_nut.json index bf6dfc8..ee93e1f 100644 --- a/src/main/resources/data/chipi/advancements/progression/get_nut.json +++ b/src/main/resources/data/chipi/advancements/progression/get_nut.json @@ -2,8 +2,8 @@ "parent": "chipi:root", "display": { "icon": { "item": "chipi:nut" }, - "title": "Certified Nut Goblin", - "description": "Pocket a nut before the other femboys gossip", + "title": "Nuts OwO", + "description": "Nyaa~ stash a nut before the other fluffballs start gossiping", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json b/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json index 27a8475..dc49cfe 100644 --- a/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json +++ b/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:raw_chipper_ore" }, "title": "Shiny Squirrel Snack", - "description": "Dig up raw chipper ore before someone nibbles it", + "description": "Dig up raw chipper ore before someone nibbles it, nya", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/light_portal.json b/src/main/resources/data/chipi/advancements/progression/light_portal.json index e08c3c2..6e01080 100644 --- a/src/main/resources/data/chipi/advancements/progression/light_portal.json +++ b/src/main/resources/data/chipi/advancements/progression/light_portal.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:chipper_portal" }, "title": "Absolutely Do Not Light This", - "description": "Ignite the portal as femboy squirrels chant \"oh no don't go in... or do\"", + "description": "Ignite the portal as the burrow whispers \"oh no don't go out there... nya\"", "frame": "challenge", "hidden": true, "show_toast": true, diff --git a/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json b/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json index 7cdb984..edf81af 100644 --- a/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json +++ b/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:chipper_alloy_block" }, "title": "Bulked-Up Bling", - "description": "Press that alloy into a block—swole femboy decor", + "description": "Press that alloy into a block—buff shiny burrow decor, uwu", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json b/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json index a35d22d..8c4eca4 100644 --- a/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json +++ b/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json @@ -2,8 +2,8 @@ "parent": "chipi:root", "display": { "icon": { "item": "chipi:chipper_frame" }, - "title": "Framing the Twink Door", - "description": "Assemble the portal while squirrels whisper this is a bad idea", + "title": "Framing the Nya Door", + "description": "Assemble the portal while the squirrels whisper this is a bad idea, nya", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/place_alloy_block.json b/src/main/resources/data/chipi/advancements/progression/place_alloy_block.json index 8417e16..0aaf625 100644 --- a/src/main/resources/data/chipi/advancements/progression/place_alloy_block.json +++ b/src/main/resources/data/chipi/advancements/progression/place_alloy_block.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:chipper_alloy_block" }, "title": "Bulk Metal Feng Shui", - "description": "Place a chipper alloy block like it's a shiny gym mirror", + "description": "Place a chipper alloy block like it's a shiny gym mirror, OwO", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json b/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json index 0aa280e..32acf46 100644 --- a/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json +++ b/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:chipper_ingot" }, "title": "Spa Day for Rocks", - "description": "Smelt chipper ore into ingots, pampered femboy style", + "description": "Smelt chipper ore into ingots—pampered den-day treatment, uwu", "frame": "task" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/progression/unlock_portal_frame_recipe.json b/src/main/resources/data/chipi/advancements/progression/unlock_portal_frame_recipe.json index 98e181e..31148cd 100644 --- a/src/main/resources/data/chipi/advancements/progression/unlock_portal_frame_recipe.json +++ b/src/main/resources/data/chipi/advancements/progression/unlock_portal_frame_recipe.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "chipi:chipper_frame" }, "title": "Forbidden IKEA Manual", - "description": "Unlock the portal frame recipe while femboy squirrels look concerned", + "description": "Unlock the portal frame recipe while the fluffy crowd side-eyes you, nya", "frame": "goal" }, "criteria": { diff --git a/src/main/resources/data/chipi/advancements/root.json b/src/main/resources/data/chipi/advancements/root.json index 1c8d2da..c6edb48 100644 --- a/src/main/resources/data/chipi/advancements/root.json +++ b/src/main/resources/data/chipi/advancements/root.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "chipi:chipper_ingot" }, "title": "Welcome to the Burrow", - "description": "Industrial femboy nonsense kicks off", + "description": "Industrial fluff nonsense kicks off, nya~", "background": "minecraft:textures/block/stone.png", "show_toast": false, "announce_to_chat": false, diff --git a/src/main/resources/data/chipi/damage_type/void_block_fire.json b/src/main/resources/data/chipi/damage_type/void_block_fire.json new file mode 100644 index 0000000..6f06328 --- /dev/null +++ b/src/main/resources/data/chipi/damage_type/void_block_fire.json @@ -0,0 +1,8 @@ +{ + "message_id": "chipi.void_block_fire", + "scaling": "never", + "exhaustion": 0.0, + "effects": { + "burning": true + } +}