Fuck a bunch of stuff

This commit is contained in:
Vos
2026-03-15 00:44:09 -05:00
parent 327855e057
commit 7b5381b418
33 changed files with 273 additions and 14 deletions
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "acesbs:item/aquarium_gravel"
}
}
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_lemon": {
"conditions": {
"items": [
{
"items": "acesbs:lemon"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "acesbs:combustible_lemon"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_lemon"
]
],
"rewards": {
"recipes": [
"acesbs:combustible_lemon"
]
}
}
@@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shapeless",
"category": "equipment",
"ingredients": [
{
"item": "acesbs:lemon"
},
{
"item": "minecraft:fire_charge"
},
{
"item": "minecraft:gunpowder"
}
],
"result": {
"count": 1,
"id": "acesbs:combustible_lemon"
}
}
@@ -15,8 +15,11 @@ import com.acethewildfire.acesbs.recipe.ModRecipies;
import com.acethewildfire.acesbs.screen.ModScreenHandlers;
import com.acethewildfire.acesbs.sounds.ModSounds;
import com.acethewildfire.acesbs.util.*;
import com.acethewildfire.acesbs.villager.ModVillagers;
import com.acethewildfire.acesbs.world.gen.ModWorldGeneration;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerEntityEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
@@ -26,10 +29,14 @@ import net.fabricmc.fabric.api.registry.CompostingChanceRegistry;
import net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistryBuilder;
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
import net.fabricmc.fabric.api.registry.StrippableBlockRegistry;
import net.minecraft.entity.Entity;
import net.minecraft.entity.mob.SkeletonEntity;
import net.minecraft.entity.passive.VillagerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.potion.Potions;
import net.minecraft.server.world.ServerWorld;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -62,6 +69,7 @@ public class AcesBS implements ModInitializer {
ModRecipies.registerRecipes();
ModParticles.registerModParticles();
ModStats.registerStats();
ModVillagers.registerVillagers();
ConversionManager.init();
@@ -1,13 +1,5 @@
Ahab's Harpoon
Aquarium Gravel
Burning Wizard (Infernal Ashes on a Villager)
- Sells fire items
Advancements
JEI
Make sure everything is craft able
- Combustable lemon
- Prisma Armor
@@ -77,6 +77,7 @@ public class ModModelProvider extends FabricModelProvider {
itemModelGenerator.register(ModItems.COOKED_LEMON, Models.GENERATED);
itemModelGenerator.register(ModItems.LEMON, Models.GENERATED);
itemModelGenerator.register(ModItems.INFERNAL_BEEF, Models.GENERATED);
itemModelGenerator.register(ModItems.AQUARIUM_GRAVEL, Models.GENERATED);
itemModelGenerator.register(ModItems.BRICKED_UP, Models.GENERATED);
itemModelGenerator.register(ModItems.TOBACCO, Models.GENERATED);
itemModelGenerator.register(ModItems.RAW_ENTROPY, Models.GENERATED);
@@ -133,6 +133,13 @@ public class ModRecipeProvider extends FabricRecipeProvider {
.criterion(hasItem(ModItems.RAW_ENTROPY), conditionsFromItem(ModItems.RAW_ENTROPY))
.offerTo(recipeExporter);
ShapelessRecipeJsonBuilder.create(RecipeCategory.COMBAT, ModItems.COMBUSTIBLE_LEMON, 1)
.input(ModItems.LEMON, 1)
.input(Items.FIRE_CHARGE, 1)
.input(Items.GUNPOWDER, 1)
.criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON))
.offerTo(recipeExporter);
ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, ModBlocks.CRYSTAL_ENTROPY_PANE, 16)
.pattern("###")
.pattern("###")
@@ -47,6 +47,12 @@ public class ModEntities {
if (!(entity instanceof SkeletonEntity skeleton)) return ActionResult.PASS;
if ((entity instanceof VulgarBones vb)) return ActionResult.PASS;
ItemStack stack = player.getStackInHand(hand);
if (!stack.isOf(ModItems.STABLE_ENTROPY)) return ActionResult.PASS;
skeleton.setAiDisabled(true);
skeleton.setInvulnerable(true);
@@ -65,10 +71,6 @@ public class ModEntities {
0.0 // speed
);
ItemStack stack = player.getStackInHand(hand);
if (!stack.isOf(ModItems.STABLE_ENTROPY)) return ActionResult.PASS;
ConversionManager.startConversion(skeleton, 20);
if (!player.getAbilities().creativeMode) {
@@ -0,0 +1,4 @@
package com.acethewildfire.acesbs.entity.custom;
public class BurningWizard {
}
@@ -28,6 +28,7 @@ public class ModItemGroups {
entries.add(ModItems.INGOT_OF_ORDER);
entries.add(ModItems.LEMON);
entries.add(ModItems.COOKED_LEMON);
entries.add(ModItems.AQUARIUM_GRAVEL);
entries.add(ModItems.INFERNAL_BEEF);
entries.add(ModItems.BRICKED_UP);
entries.add(ModItems.ORACLE_LEMON);
@@ -206,6 +206,7 @@ public class ModItems {
public static final Item CIGARETTE_LEMON = registerItem("cigarette_lemon", new CigaretteLemon(new Item.Settings().maxCount(20)));
public static final Item CIGARETTE_FUNNY = registerItem("cigarette_funny", new CigaretteFunny(new Item.Settings().maxCount(20)));
public static final Item BUBBLE_PIPE = registerItem("bubble_pipe", new BubblePipe(new Item.Settings().maxCount(1)));
public static final Item AQUARIUM_GRAVEL = registerItem("aquarium_gravel", new AquariumGravel(new Item.Settings().maxCount(1)));
public static final Item FREN_SPAWN_EGG = registerItem("fren_spawn_egg",
new SpawnEggItem(ModEntities.FREN, 894731, 0, new Item.Settings()));
@@ -0,0 +1,65 @@
package com.acethewildfire.acesbs.item.custom;
import com.acethewildfire.acesbs.component.ModDataComponentTypes;
import com.acethewildfire.acesbs.effect.ModEffects;
import com.acethewildfire.acesbs.sounds.ModSounds;
import com.acethewildfire.acesbs.sounds.PlayerAttachedSound;
import com.acethewildfire.acesbs.util.ModStats;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.particle.ParticleTypes;
import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.util.UseAction;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
public class AquariumGravel extends Item {
public AquariumGravel(Settings settings) {
super(settings);
}
// Store the currently playing sound (client only)
private static PlayerAttachedSound activeSound;
@Override
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {
ItemStack stack = user.getStackInHand(hand);
user.setCurrentHand(hand);
return TypedActionResult.consume(stack);
}
@Override
public UseAction getUseAction(ItemStack stack) {
return UseAction.EAT;
}
@Override
public SoundEvent getEatSound() {
return ModSounds.CRUNCH;
}
@Override
public int getMaxUseTime(ItemStack stack, LivingEntity user) {
return 32; // basically infinite hold
}
@Override
public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) {
super.usageTick(world, user, stack, remainingUseTicks);
}
@Override
public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) {
return stack;
}
}
@@ -0,0 +1,35 @@
package com.acethewildfire.acesbs.mixin;
import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.villager.ModVillagers;
import net.minecraft.entity.passive.VillagerEntity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.village.VillagerData;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(VillagerEntity.class)
public abstract class VillagerFireMixin {
@Inject(method = "setVillagerData", at = @At("TAIL"))
private void applyBurningWizardFire(VillagerData villagerData, CallbackInfo ci) {
VillagerEntity villager = (VillagerEntity)(Object)this;
if (villagerData.getProfession() == ModVillagers.BURNING_WIZARD) {
NbtCompound nbt = new NbtCompound();
villager.writeNbt(nbt);
nbt.putBoolean("HasVisualFire", true);
villager.readNbt(nbt);
} else {
NbtCompound nbt = new NbtCompound();
villager.writeNbt(nbt);
nbt.putBoolean("HasVisualFire", false);
villager.readNbt(nbt);
}
}
}
@@ -21,6 +21,7 @@ public class ModSounds {
public static final SoundEvent VULGAR_BONES_HURT = registerSoundEvent("vulgar_bones_hurt");
public static final SoundEvent VULGAR_BONES_DEATH = registerSoundEvent("vulgar_bones_death");
public static final SoundEvent VULGAR_BONES_SPAWN = registerSoundEvent("vulgar_bones_spawn");
public static final SoundEvent CRUNCH = registerSoundEvent("crunch");
// public static final BlockSoundGroup LIZARD_SOUNDS = new BlockSoundGroup(1f, 1f, SoundEvents.BLOCK_WOOD_BREAK, SoundEvents.BLOCK_WOOD_STEP, SoundEvents.BLOCK_WOOD_PLACE, SoundEvents.BLOCK_WOOD_HIT, SoundEvents.BLOCK_WOOD_FALL)
@@ -0,0 +1,45 @@
package com.acethewildfire.acesbs.villager;
import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.block.ModBlocks;
import com.google.common.collect.ImmutableSet;
import net.fabricmc.fabric.api.object.builder.v1.world.poi.PointOfInterestHelper;
import net.minecraft.block.Block;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Identifier;
import net.minecraft.village.VillagerProfession;
import net.minecraft.world.poi.PointOfInterestType;
public class ModVillagers {
public static final RegistryKey<PointOfInterestType> BURNING_POI_KEY = registerPoiKey("burning_poi");
public static final PointOfInterestType BURNING_POI = registerPOI("burning_poi", ModBlocks.INFERNAL_ASHES_BLOCK);
public static final VillagerProfession BURNING_WIZARD = registerProfession("burning_wizard", BURNING_POI_KEY);
private static VillagerProfession registerProfession(String name, RegistryKey<PointOfInterestType> type) {
return Registry.register(Registries.VILLAGER_PROFESSION, Identifier.of(AcesBS.MOD_ID, name),
new VillagerProfession(name, entry -> entry.matchesKey(type), entry -> entry.matchesKey(type),
ImmutableSet.of(), ImmutableSet.of(), SoundEvents.ENTITY_VILLAGER_WORK_LIBRARIAN));
}
private static PointOfInterestType registerPOI(String name, Block block) {
return PointOfInterestHelper.register(Identifier.of(AcesBS.MOD_ID, name),
1, 1, block);
}
private static RegistryKey<PointOfInterestType> registerPoiKey(String name) {
return RegistryKey.of(RegistryKeys.POINT_OF_INTEREST_TYPE, Identifier.of(AcesBS.MOD_ID, name));
}
public static void registerVillagers (){
AcesBS.LOGGER.info("Registering Mod Villagers for " + AcesBS.MOD_ID);
}
}
+3 -2
View File
@@ -7,9 +7,10 @@
"CreeperTickMixin",
"CreeperTransformStateMixin",
"EntityMixin",
"LivingEntityMixin",
"ExampleMixin",
"PlayerEntityMixin"
"LivingEntityMixin",
"PlayerEntityMixin",
"VillagerFireMixin"
],
"injectors": {
"defaultRequire": 1
@@ -9,6 +9,7 @@
"item.acesbs.lemon": "Odd Lemon",
"item.acesbs.infernal_beef": "Infernal Beef",
"item.acesbs.bricked_up": "Bricked Up",
"item.acesbs.aquarium_gravel": "Aquarium Gravel",
"item.acesbs.cooked_lemon": "Cooked Odd Lemon",
"item.acesbs.green_bricks": "Green Bricks",
"item.acesbs.wand": "Entropy Wand",
@@ -218,6 +219,7 @@
"sounds.acesbs.vulgar_bones_ambient": "Vulgar Bones Swears",
"sounds.acesbs.vulgar_bones_hurt": "Vulgar Bones Swears Painfully",
"sounds.acesbs.vulgar_bones_death": "Vulgar Bones Utters Final Swears",
"sounds.acesbs.crunch": "Loud Crunching",
"enchantment.acesbs.lightning_strike": "Lightning Strike",
@@ -225,6 +227,7 @@
"entity.acesbs.combustible_lemon": "Combustible Lemon",
"entity.acesbs.vulgar_bones": "Captain Vulgar Bones",
"entity.minecraft.villager.burning_wizard": "Burning Wizard",
"effect.acesbs.infernal_fire": "Infernal Fire",
"effect.acesbs.lemon": "Puckered",
@@ -65,5 +65,9 @@
"vulgar_bones_death": {
"subtitle": "sounds.acesbs.vulgar_bones_death",
"sounds": ["acesbs:vulgar_bones_death_1", "acesbs:vulgar_bones_death_2", "acesbs:vulgar_bones_death_3", "acesbs:vulgar_bones_death_4"]
},
"crunch": {
"subtitle": "sounds.acesbs.crunch",
"sounds": ["acesbs:crunch_1","acesbs:crunch_2","acesbs:crunch_3","acesbs:crunch_4","acesbs:crunch_5","acesbs:crunch_6","acesbs:crunch_7","acesbs:crunch_8","acesbs:crunch_9"]
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

@@ -0,0 +1,13 @@
{
"type": "acesbs:entropic_entangler",
"ingredient": {
"item": "minecraft:prismarine_crystals"
},
"ingredient2": {
"item": "acesbs:stable_entropy"
},
"result": {
"count": 1,
"id": "acesbs:aquarium_gravel"
}
}
@@ -0,0 +1,10 @@
{
"type": "acesbs:entropic_eviscerator",
"ingredient": {
"item": "minecraft:apple"
},
"result": {
"count": 1,
"id": "acesbs:lemon"
}
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "acesbs:burning_poi",
"required": false
}
]
}