Pre-datagen

This commit is contained in:
Vos
2025-11-03 17:19:38 -06:00
parent 6d31f2a62c
commit 8397b764d3
6 changed files with 95 additions and 8 deletions
@@ -1,22 +1,28 @@
package com.acethewildfire.acesbs.block.custom; package com.acethewildfire.acesbs.block.custom;
import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.util.ModTags;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.ItemEntity; import net.minecraft.entity.ItemEntity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.item.tooltip.TooltipType;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents; import net.minecraft.sound.SoundEvents;
import net.minecraft.text.Text;
import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import java.util.List;
import java.util.Random; import java.util.Random;
public class EntropyBlock extends Block { public class EntropyBlock extends Block {
@@ -35,14 +41,18 @@ public class EntropyBlock extends Block {
@Override @Override
public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) { public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) {
if (entity instanceof ItemEntity itemEntity){ if (entity instanceof ItemEntity itemEntity){
if(isValidItem(itemEntity.getStack())){
int chance = r.nextInt(1,21); // 1-20 int chance = r.nextInt(1,21); // 1-20
int itemIndex = r.nextInt(1, Registries.ITEM.size()+1); int itemIndex = r.nextInt(1, Registries.ITEM.size()+1);
if (chance == 20) {
itemEntity.setStack(new ItemStack(itemEntity.getStack().getItem(), itemEntity.getStack().getCount() - 1)); itemEntity.setStack(new ItemStack(itemEntity.getStack().getItem(), itemEntity.getStack().getCount() - 1));
if (chance == 20) {
world.playSound(itemEntity, pos, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SoundCategory.BLOCKS, 10f, 1f); world.playSound(itemEntity, pos, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SoundCategory.BLOCKS, 10f, 1f);
ItemEntity convItem = new ItemEntity(world, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), new ItemStack(Registries.ITEM.get(Identifier.of(AcesBS.MOD_ID, "lemon")), 1)); ItemEntity convItem = new ItemEntity(world, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), new ItemStack(Registries.ITEM.get(Identifier.of(AcesBS.MOD_ID, "lemon")), 1));
world.spawnEntity(convItem); world.spawnEntity(convItem);
} else {
world.playSound(itemEntity, pos, SoundEvents.ITEM_FIRECHARGE_USE, SoundCategory.BLOCKS, 10f, 1f);
}
} }
} }
@@ -54,4 +64,15 @@ public class EntropyBlock extends Block {
super.onSteppedOn(world, pos, state, entity); super.onSteppedOn(world, pos, state, entity);
} }
private boolean isValidItem(ItemStack stack) {
return stack.isIn(ModTags.Items.ENTROPY_CONVERTABLE);
}
@Override
public void appendTooltip(ItemStack stack, Item.TooltipContext context, List<Text> tooltip, TooltipType options) {
tooltip.add(Text.translatable("tooltip.acesbs.entropy_block.tooltip"));
tooltip.add(Text.translatable("tooltip.acesbs.entropy_block.tooltip2"));
super.appendTooltip(stack, context, tooltip, options);
}
} }
@@ -4,12 +4,17 @@ import com.acethewildfire.acesbs.AcesBS;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipType;
import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Direction.AxisDirection; import net.minecraft.util.math.Direction.AxisDirection;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World; import net.minecraft.world.World;
import java.util.List;
import java.util.Random; import java.util.Random;
public class StableEntropyBlock extends Block { public class StableEntropyBlock extends Block {
@@ -30,4 +35,10 @@ public class StableEntropyBlock extends Block {
super.onSteppedOn(world, pos, state, entity); super.onSteppedOn(world, pos, state, entity);
} }
@Override
public void appendTooltip(ItemStack stack, Item.TooltipContext context, List<Text> tooltip, TooltipType options) {
tooltip.add(Text.translatable("tooltip.acesbs.stable_entropy_block.tooltip"));
super.appendTooltip(stack, context, tooltip, options);
}
} }
@@ -2,17 +2,23 @@ package com.acethewildfire.acesbs.item;
import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.item.custom.OracleLemon; import com.acethewildfire.acesbs.item.custom.OracleLemon;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.component.DataComponentTypes; import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.PotionContentsComponent; import net.minecraft.component.type.PotionContentsComponent;
import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects; import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipType;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry; import net.minecraft.registry.Registry;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import java.util.List;
public class ModItems { public class ModItems {
private static final RegistryEntry<Potion> BLINDNESS = registerPotion("blindness", new Potion(new StatusEffectInstance(StatusEffects.BLINDNESS, 200))); private static final RegistryEntry<Potion> BLINDNESS = registerPotion("blindness", new Potion(new StatusEffectInstance(StatusEffects.BLINDNESS, 200)));
@@ -21,7 +27,18 @@ public class ModItems {
public static final Item STABLE_ENTROPY = registerItem("stable_entropy", new Item(new Item.Settings())); public static final Item STABLE_ENTROPY = registerItem("stable_entropy", new Item(new Item.Settings()));
public static final Item LEMON = registerItem("lemon", new Item(new Item.Settings().food(ModFoodComponent.LEMON))); public static final Item LEMON = registerItem("lemon", new Item(new Item.Settings().food(ModFoodComponent.LEMON)));
public static final Item COOKED_LEMON = registerItem("cooked_lemon", new Item(new Item.Settings().food(ModFoodComponent.COOKED_LEMON))); public static final Item COOKED_LEMON = registerItem("cooked_lemon", new Item(new Item.Settings().food(ModFoodComponent.COOKED_LEMON)));
public static final Item GREEN_BRICKS = registerItem("green_bricks", new Item(new Item.Settings())); public static final Item GREEN_BRICKS = registerItem("green_bricks", new Item(new Item.Settings()) {
@Override
public void appendTooltip(ItemStack stack, TooltipContext context, List<Text> tooltip, TooltipType type) {
if(Screen.hasShiftDown()){
tooltip.add(Text.translatable("tooltip.acesbs.green_bricks.shift_down"));
}
else {
tooltip.add(Text.translatable("tooltip.acesbs.green_bricks"));
}
super.appendTooltip(stack, context, tooltip, type);
}
});
private static Item registerItem(String name, Item item){ private static Item registerItem(String name, Item item){
return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item); return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item);
@@ -0,0 +1,24 @@
package com.acethewildfire.acesbs.util;
import com.acethewildfire.acesbs.AcesBS;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier;
public class ModTags {
public static class Blocks {
private static TagKey<Block> createTag(String name){
return TagKey.of(RegistryKeys.BLOCK, Identifier.of(AcesBS.MOD_ID, name));
}
}
public static class Items {
public static final TagKey<Item> ENTROPY_CONVERTABLE = createTag("entropy_convertable");
private static TagKey<Item> createTag(String name){
return TagKey.of(RegistryKeys.ITEM, Identifier.of(AcesBS.MOD_ID, name));
}
}
}
@@ -5,13 +5,22 @@
"item.acesbs.lemon": "Odd Lemon", "item.acesbs.lemon": "Odd Lemon",
"item.acesbs.cooked_lemon": "Cooked Odd Lemon", "item.acesbs.cooked_lemon": "Cooked Odd Lemon",
"item.acesbs.green_bricks": "Green Bricks", "item.acesbs.green_bricks": "Green Bricks",
"item.minecraft.potion.effect.blindness": "Potion of Blindness", "item.minecraft.potion.effect.blindness": "Potion of Blindness",
"item.minecraft.splash_potion.effect.blindness": "Splash Potion of Blindness", "item.minecraft.splash_potion.effect.blindness": "Splash Potion of Blindness",
"item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness",
"item.minecraft.tipped_arrow.effect.blindness": "Arrow of Blindness", "item.minecraft.tipped_arrow.effect.blindness": "Arrow of Blindness",
"block.acesbs.entropy_block": "Block of Entropy", "block.acesbs.entropy_block": "Block of Entropy",
"block.acesbs.entropy_ore": "Entropic Ore", "block.acesbs.entropy_ore": "Entropic Ore",
"block.acesbs.stable_entropy_block": "Block of Stabilized Entropy", "block.acesbs.stable_entropy_block": "Block of Stabilized Entropy",
"itemgroup.acesbs.items": "Ace's BS Items", "itemgroup.acesbs.items": "Ace's BS Items",
"itemgroup.acesbs.blocks": "Ace's BS Blocks" "itemgroup.acesbs.blocks": "Ace's BS Blocks",
"tooltip.acesbs.entropy_block.tooltip": "Exerts an §o§4uncertain force§r when stepped on.",
"tooltip.acesbs.stable_entropy_block.tooltip": "Exerts an §o§2upward force§r when stepped on.",
"tooltip.acesbs.green_bricks.shift_down": "§o§7Useless Item§r",
"tooltip.acesbs.green_bricks": "Hold §eShift§r for item description.",
"tooltip.acesbs.entropy_block.tooltip2": "Has a 1/20 chance of turning an apple into a lemon."
} }
@@ -0,0 +1,5 @@
{
"values": [
"minecraft:apple"
]
}