diff --git a/src/main/generated/assets/acesbs/blockstates/lizard_button.json b/src/main/generated/assets/acesbs/blockstates/lizard_button.json new file mode 100644 index 0000000..18fc383 --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lizard_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "acesbs:block/lizard_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "acesbs:block/lizard_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "acesbs:block/lizard_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "acesbs:block/lizard_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "acesbs:block/lizard_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "acesbs:block/lizard_button" + }, + "face=floor,facing=north,powered=true": { + "model": "acesbs:block/lizard_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "acesbs:block/lizard_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "acesbs:block/lizard_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "acesbs:block/lizard_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "acesbs:block/lizard_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "acesbs:block/lizard_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "acesbs:block/lizard_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "acesbs:block/lizard_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/lizard_planks.json b/src/main/generated/assets/acesbs/blockstates/lizard_planks.json new file mode 100644 index 0000000..7ba960c --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lizard_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/lizard_planks" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lizard_button.json b/src/main/generated/assets/acesbs/models/block/lizard_button.json new file mode 100644 index 0000000..e88ff7c --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lizard_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "acesbs:block/lizard_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lizard_button_inventory.json b/src/main/generated/assets/acesbs/models/block/lizard_button_inventory.json new file mode 100644 index 0000000..aa0c029 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lizard_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "acesbs:block/lizard_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lizard_button_pressed.json b/src/main/generated/assets/acesbs/models/block/lizard_button_pressed.json new file mode 100644 index 0000000..9f5a4bb --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lizard_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "acesbs:block/lizard_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lizard_planks.json b/src/main/generated/assets/acesbs/models/block/lizard_planks.json new file mode 100644 index 0000000..e3865b4 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lizard_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "acesbs:block/lizard_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lizard_button.json b/src/main/generated/assets/acesbs/models/item/lizard_button.json new file mode 100644 index 0000000..fc2333d --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lizard_button.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/lizard_button_inventory" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lizard_planks.json b/src/main/generated/assets/acesbs/models/item/lizard_planks.json new file mode 100644 index 0000000..76358b1 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lizard_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/lizard_planks" +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lizard_planks.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lizard_planks.json new file mode 100644 index 0000000..f9c8aad --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lizard_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lizard_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_dye" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lizard_planks" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/redstone/lizard_button.json b/src/main/generated/data/acesbs/advancement/recipes/redstone/lizard_button.json new file mode 100644 index 0000000..3b2304f --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/redstone/lizard_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lizard_planks": { + "conditions": { + "items": [ + { + "items": "acesbs:lizard_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lizard_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lizard_planks" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lizard_button" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lizard_button.json b/src/main/generated/data/acesbs/recipe/lizard_button.json new file mode 100644 index 0000000..ea2196e --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lizard_button.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "item": "acesbs:lizard_planks" + } + ], + "result": { + "count": 1, + "id": "acesbs:lizard_button" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lizard_planks.json b/src/main/generated/data/acesbs/recipe/lizard_planks.json new file mode 100644 index 0000000..64d154b --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lizard_planks.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:birch_planks" + }, + { + "item": "minecraft:birch_planks" + }, + { + "item": "minecraft:birch_planks" + }, + { + "item": "minecraft:birch_planks" + }, + { + "item": "acesbs:raw_entropy" + }, + { + "item": "minecraft:green_dye" + } + ], + "result": { + "count": 4, + "id": "acesbs:lizard_planks" + } +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/AcesBS.java b/src/main/java/com/acethewildfire/acesbs/AcesBS.java index 9890110..d1a547c 100644 --- a/src/main/java/com/acethewildfire/acesbs/AcesBS.java +++ b/src/main/java/com/acethewildfire/acesbs/AcesBS.java @@ -4,10 +4,13 @@ import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.component.ModDataComponentTypes; import com.acethewildfire.acesbs.item.ModItemGroups; import com.acethewildfire.acesbs.item.ModItems; +import com.acethewildfire.acesbs.sounds.ModSounds; import com.acethewildfire.acesbs.util.HammerUsageEvent; import com.acethewildfire.acesbs.util.UpdateRecipies; +import com.acethewildfire.acesbs.util.YouMonsterEvent; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.player.AttackEntityCallback; import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,11 +33,13 @@ public class AcesBS implements ModInitializer { ModItemGroups.registerItemGroups(); ModItems.registerModItems(); ModBlocks.registerModBlocks(); + ModSounds.registerSounds(); ModDataComponentTypes.registerDataComponentsTypes(); UpdateRecipies.updateVanilla(); PlayerBlockBreakEvents.BEFORE.register(new HammerUsageEvent()); + AttackEntityCallback.EVENT.register(new YouMonsterEvent()); } } \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java index 33ad0aa..eebd487 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java +++ b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java @@ -4,16 +4,27 @@ import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.block.custom.EntropyBlock; import com.acethewildfire.acesbs.block.custom.EvilBlock; import com.acethewildfire.acesbs.block.custom.StableEntropyBlock; +import com.acethewildfire.acesbs.sounds.ModSounds; import net.minecraft.block.*; import net.minecraft.block.enums.NoteBlockInstrument; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvent; +import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.intprovider.UniformIntProvider; +import net.minecraft.world.World; +import net.minecraft.world.WorldAccess; +import org.jetbrains.annotations.Nullable; import java.util.function.ToIntFunction; @@ -133,6 +144,37 @@ public class ModBlocks { .nonOpaque() )); + public static final Block LIZARD_PLANKS = registerBlock("lizard_planks", + new Block( + AbstractBlock.Settings.create() + .mapColor(MapColor.DARK_GREEN) + .strength(2.0F, 3.0F) + .sounds(BlockSoundGroup.WOOD) + .burnable() + .noCollision() + )); + + public static final Block LIZARD_BUTTON = registerBlock("lizard_button", + new ButtonBlock(BlockSetType.BIRCH, 1, + AbstractBlock.Settings.create() + .mapColor(MapColor.DARK_GREEN) + .strength(2.0F, 3.0F) + .sounds(BlockSoundGroup.WOOD) + .burnable() + .noCollision() + ){ + private final BlockSetType blockSetType = BlockSetType.BIRCH; + +// @Override +// protected void playClickSound(@Nullable PlayerEntity player, WorldAccess world, BlockPos pos, boolean powered) { +// world.playSound(powered ? player : null, pos, ModSounds.LIZARD, SoundCategory.BLOCKS); +// } + @Override + protected SoundEvent getClickSound(boolean powered) { + return powered ? ModSounds.LIZARD : this.blockSetType.buttonClickOff(); + } + }); + public static final Block EVIL_BLOCK = registerBlock("evil_block", new EvilBlock(AbstractBlock.Settings.create() .strength(5f) diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index 7ffc59a..aa80eef 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -23,8 +23,12 @@ public class ModModelProvider extends FabricModelProvider { blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.STABLE_ENTROPY_BLOCK); blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.PRISMA_STEEL_BLOCK); + BlockStateModelGenerator.BlockTexturePool lizardPool = blockStateModelGenerator.registerCubeAllModelTexturePool(ModBlocks.LIZARD_PLANKS); + lizardPool.button(ModBlocks.LIZARD_BUTTON); + BlockStateModelGenerator.BlockTexturePool lemonwoodPool = blockStateModelGenerator.registerCubeAllModelTexturePool(ModBlocks.LEMONWOOD_PLANKS); + lemonwoodPool.stairs(ModBlocks.LEMONWOOD_STAIRS); lemonwoodPool.slab(ModBlocks.LEMONWOOD_SLAB); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java index 7ec55ff..82b5c19 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java @@ -25,6 +25,91 @@ public class ModRecipeProvider extends FabricRecipeProvider { super(output, registriesFuture); } + @Override + public void generate(RecipeExporter recipeExporter) { + + List ENTROPY_SMELTABLES = List.of(ModItems.RAW_ENTROPY, ModBlocks.ENTROPY_ORE); + + offerBlasting(recipeExporter, ENTROPY_SMELTABLES, RecipeCategory.MISC, ModItems.STABLE_ENTROPY, 0.5f, 2000, "stable_entropy"); + + offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.RAW_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.ENTROPY_BLOCK); + offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.STABLE_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.STABLE_ENTROPY_BLOCK); + offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.PRISMA_STEEL, RecipeCategory.DECORATIONS, ModBlocks.PRISMA_STEEL_BLOCK); + + offerAllFoodCookingRecipes(recipeExporter, 200, ModItems.LEMON, ModItems.COOKED_LEMON, 0.35F); + + ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, ModItems.ORACLE_LEMON) + .pattern("###") + .pattern("#L#") + .pattern("###") + .input('#', ModItems.STABLE_ENTROPY) + .input('L', ModItems.LEMON) + .criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON)) + .offerTo(recipeExporter); + + + ShapelessRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, ModBlocks.LIZARD_PLANKS, 4) + .input(Blocks.BIRCH_PLANKS, 4) + .input(ModItems.RAW_ENTROPY, 1) + .input(Items.GREEN_DYE, 1) + .criterion(hasItem(Items.GREEN_DYE), conditionsFromItem(Items.GREEN_DYE)) + .offerTo(recipeExporter); + + ShapelessRecipeJsonBuilder.create(RecipeCategory.REDSTONE, ModBlocks.LIZARD_BUTTON, 1) + .input(ModBlocks.LIZARD_PLANKS, 1) + .criterion(hasItem(ModBlocks.LIZARD_PLANKS), conditionsFromItem(ModBlocks.LIZARD_PLANKS)) + .offerTo(recipeExporter); + + ShapelessRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_PLANKS, 4) + .input(Blocks.BIRCH_PLANKS, 4) + .input(ModItems.LEMON, 1) + .criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON)) + .offerTo(recipeExporter); + + createStairsRecipe(ModBlocks.LEMONWOOD_STAIRS, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + createSlabRecipe(RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_SLAB, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + + ShapelessRecipeJsonBuilder.create(RecipeCategory.REDSTONE, ModBlocks.LEMONWOOD_BUTTON, 1) + .input(ModBlocks.LEMONWOOD_PLANKS, 1) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + createPressurePlateRecipe(RecipeCategory.REDSTONE, ModBlocks.LEMONWOOD_PRESSURE_PLATE, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + + createFenceRecipe(ModBlocks.LEMONWOOD_FENCE, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + createFenceGateRecipe(ModBlocks.LEMONWOOD_FENCE_GATE, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + offerWallRecipe(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_WALL, ModBlocks.LEMONWOOD_PLANKS); + + createDoorRecipe(ModBlocks.LEMONWOOD_DOOR, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + createTrapdoorRecipe(ModBlocks.LEMONWOOD_TRAPDOOR, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) + .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) + .offerTo(recipeExporter); + + SwordRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SWORD, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + PickaxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + HammerRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HAMMER, ModItems.PRISMA_STEEL, ModBlocks.PRISMA_STEEL_BLOCK, Items.STICK, ModItems.PRISMA_STEEL); + AxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_AXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + ShovelRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SHOVEL, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + HoeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HOE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + + offerSmithingTrimRecipe(recipeExporter, ModItems.PRISMA_SMITHING_TEMPLATE, Identifier.of(AcesBS.MOD_ID, "prisma")); + + // For 2+ recipes with the same RESULT use + // .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, "output_item_from_input_item")); + } + + private void SwordRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible handleMaterial, ItemConvertible criterionItem){ ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, result) .pattern(" # ") @@ -103,76 +188,6 @@ public class ModRecipeProvider extends FabricRecipeProvider { .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, result.asItem().getName().getString() + ".right")); } - @Override - public void generate(RecipeExporter recipeExporter) { - - List ENTROPY_SMELTABLES = List.of(ModItems.RAW_ENTROPY, ModBlocks.ENTROPY_ORE); - - offerBlasting(recipeExporter, ENTROPY_SMELTABLES, RecipeCategory.MISC, ModItems.STABLE_ENTROPY, 0.5f, 2000, "stable_entropy"); - - offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.RAW_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.ENTROPY_BLOCK); - offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.STABLE_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.STABLE_ENTROPY_BLOCK); - offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.PRISMA_STEEL, RecipeCategory.DECORATIONS, ModBlocks.PRISMA_STEEL_BLOCK); - - offerAllFoodCookingRecipes(recipeExporter, 200, ModItems.LEMON, ModItems.COOKED_LEMON, 0.35F); - - ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, ModItems.ORACLE_LEMON) - .pattern("###") - .pattern("#L#") - .pattern("###") - .input('#', ModItems.STABLE_ENTROPY) - .input('L', ModItems.LEMON) - .criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON)) - .offerTo(recipeExporter); - - ShapelessRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_PLANKS, 4) - .input(Blocks.BIRCH_PLANKS, 4) - .input(ModItems.LEMON, 1) - .criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON)) - .offerTo(recipeExporter); - - createStairsRecipe(ModBlocks.LEMONWOOD_STAIRS, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - createSlabRecipe(RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_SLAB, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - - ShapelessRecipeJsonBuilder.create(RecipeCategory.REDSTONE, ModBlocks.LEMONWOOD_BUTTON, 1) - .input(ModBlocks.LEMONWOOD_PLANKS, 1) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - createPressurePlateRecipe(RecipeCategory.REDSTONE, ModBlocks.LEMONWOOD_PRESSURE_PLATE, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - - createFenceRecipe(ModBlocks.LEMONWOOD_FENCE, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - createFenceGateRecipe(ModBlocks.LEMONWOOD_FENCE_GATE, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - offerWallRecipe(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_WALL, ModBlocks.LEMONWOOD_PLANKS); - - createDoorRecipe(ModBlocks.LEMONWOOD_DOOR, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - createTrapdoorRecipe(ModBlocks.LEMONWOOD_TRAPDOOR, Ingredient.ofItems(ModBlocks.LEMONWOOD_PLANKS)) - .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) - .offerTo(recipeExporter); - - SwordRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SWORD, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); - PickaxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); - HammerRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HAMMER, ModItems.PRISMA_STEEL, ModBlocks.PRISMA_STEEL_BLOCK, Items.STICK, ModItems.PRISMA_STEEL); - AxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_AXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); - ShovelRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SHOVEL, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); - HoeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HOE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); - - offerSmithingTrimRecipe(recipeExporter, ModItems.PRISMA_SMITHING_TEMPLATE, Identifier.of(AcesBS.MOD_ID, "prisma")); - - // For 2+ recipes with the same RESULT use - // .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, "output_item_from_input_item")); - } public void offerAllFoodCookingRecipes (RecipeExporter recipeExporter, int baseCookingTime, ItemConvertible raw_item, ItemConvertible cooked_item, float experience ){ offerFoodCookingRecipe(recipeExporter, "smoking", RecipeSerializer.SMOKING, SmokingRecipe::new,baseCookingTime/2, raw_item, cooked_item, experience); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index 0d80a34..db866ef 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -40,6 +40,9 @@ public class ModItemGroups { entries.add(ModBlocks.STABLE_ENTROPY_BLOCK); entries.add(ModBlocks.PRISMA_STEEL_BLOCK); + entries.add(ModBlocks.LIZARD_PLANKS); + entries.add(ModBlocks.LIZARD_BUTTON); + entries.add(ModBlocks.LEMONWOOD_PLANKS); entries.add(ModBlocks.LEMONWOOD_STAIRS); entries.add(ModBlocks.LEMONWOOD_SLAB); diff --git a/src/main/java/com/acethewildfire/acesbs/sounds/ModSounds.java b/src/main/java/com/acethewildfire/acesbs/sounds/ModSounds.java new file mode 100644 index 0000000..0efca2e --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/sounds/ModSounds.java @@ -0,0 +1,26 @@ +package com.acethewildfire.acesbs.sounds; + +import com.acethewildfire.acesbs.AcesBS; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Identifier; + +public class ModSounds { + public static final SoundEvent LIZARD = registerSoundEvent("lizard"); + +// 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) + + private static SoundEvent registerSoundEvent(String name){ + Identifier id = Identifier.of(AcesBS.MOD_ID, name); + return Registry.register(Registries.SOUND_EVENT, id, SoundEvent.of(id)); + } + + + public static void registerSounds(){ + AcesBS.LOGGER.info("Registering Mod Sounds for " + AcesBS.MOD_ID); + } + +} diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index 0017205..0bcf176 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -37,6 +37,9 @@ "block.acesbs.entropy_ore": "Entropic Ore", "block.acesbs.stable_entropy_block": "Block of Stabilized Entropy", + "block.acesbs.lizard_planks": "Lizard Planks", + "block.acesbs.lizard_button": "Lizard Button", + "block.acesbs.lemonwood_planks": "Lemonwood Planks", "block.acesbs.lemonwood_stairs": "Lemonwood Stairs", "block.acesbs.lemonwood_slab": "Lemonwood Slab", @@ -50,8 +53,6 @@ "block.acesbs.evil_block": "Evil Block", - - "itemgroup.acesbs.items": "Ace's BS Items", "itemgroup.acesbs.blocks": "Ace's BS Blocks", "itemgroup.acesbs.combat": "Ace's BS Combat", @@ -66,5 +67,7 @@ "tooltip.acesbs.wand": "Changes blocks using Entropy", "tooltip.acesbs.kaupen_bow": "§7§oThanks to §1Modding by Kaupenjoe§r", - "tooltip.acesbs.kaupen_bow_2": "§7§oYou made minecraft modding easy.§r" + "tooltip.acesbs.kaupen_bow_2": "§7§oYou made minecraft modding easy.§r", + + "sounds.acesbs.lizard": "Lizard button" } \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/sounds.json b/src/main/resources/assets/acesbs/sounds.json new file mode 100644 index 0000000..32fac08 --- /dev/null +++ b/src/main/resources/assets/acesbs/sounds.json @@ -0,0 +1,8 @@ +{ + "lizard": { + "subtitle": "sounds.acesbs.lizard", + "sounds": [ + "acesbs:lizard" + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/sounds/lizard.ogg b/src/main/resources/assets/acesbs/sounds/lizard.ogg new file mode 100644 index 0000000..69f77df Binary files /dev/null and b/src/main/resources/assets/acesbs/sounds/lizard.ogg differ diff --git a/src/main/resources/assets/acesbs/textures/block/lizard_planks.png b/src/main/resources/assets/acesbs/textures/block/lizard_planks.png new file mode 100644 index 0000000..23609da Binary files /dev/null and b/src/main/resources/assets/acesbs/textures/block/lizard_planks.png differ