Cigarettes
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/mote_of_order"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,11 @@ Resources
|
|||||||
X Infernal Ashes
|
X Infernal Ashes
|
||||||
- Raw End-tropy
|
- Raw End-tropy
|
||||||
- Stable End-tropy
|
- Stable End-tropy
|
||||||
|
- Mote of Order
|
||||||
|
- Dust of Order
|
||||||
|
- Ingot of Order
|
||||||
|
- Ordered Core
|
||||||
|
- Command Core
|
||||||
X Prisma Steel (Stable Entropy + Iron) (Needs recipe)
|
X Prisma Steel (Stable Entropy + Iron) (Needs recipe)
|
||||||
- Chaos Silver (Stable Entropy + Gold)
|
- Chaos Silver (Stable Entropy + Gold)
|
||||||
- Fractal Diamond (Stable Entropy + Diamond)
|
- Fractal Diamond (Stable Entropy + Diamond)
|
||||||
@@ -21,7 +26,10 @@ X Bricked Up (Brick + End-tropy)
|
|||||||
X Infernal Beef (Mob/Ashes + Cooked Beef)
|
X Infernal Beef (Mob/Ashes + Cooked Beef)
|
||||||
- Hyper Stimulants (Hyper Sugar)
|
- Hyper Stimulants (Hyper Sugar)
|
||||||
- Narcan (Stimulants + Entropic Eviscerator)
|
- Narcan (Stimulants + Entropic Eviscerator)
|
||||||
X Tobacco
|
O Tobacco (Makes you sick)
|
||||||
|
- Cigarette (Speed for 5, slow for 5, 30 of jittery) (Acheivements) (Stats)
|
||||||
|
- Cigarette (Funny) (Blows inordinate amounts of smoke)
|
||||||
|
- Cigarette (Lemon) (Explodes)
|
||||||
|
|
||||||
Crop
|
Crop
|
||||||
X Tobacco
|
X Tobacco
|
||||||
@@ -54,6 +62,43 @@ X Prisma Steel (May get a different Ore when mining)
|
|||||||
- Infernal Diamond (Randomly Smelts Ores)
|
- Infernal Diamond (Randomly Smelts Ores)
|
||||||
- Endtropium
|
- Endtropium
|
||||||
|
|
||||||
|
Order
|
||||||
|
- Helm of Wisdom
|
||||||
|
- One passive slot
|
||||||
|
- Sight (See where others can not) [Night vision + removes blindness and darkness]
|
||||||
|
- Omnipotence (Let nothing escape your sight) [Struck mobs get glowing for 5 min]
|
||||||
|
- Intimidate (Warn any would be foes you mean business) [Lowers mob agro distance, endermen do not get upset when you look at them]
|
||||||
|
- Cuirass of Authority
|
||||||
|
- One passive slot
|
||||||
|
- Immunity (Most physical ailments have no effect on you) [Removes poison, weakness, mining fatigue]
|
||||||
|
- Greaves of Will
|
||||||
|
- One passive slot
|
||||||
|
- Immovable (You cannot be moved against your will) [No knockback]
|
||||||
|
- Unstopable (You cannot be stopped) [No web, slime, soul sand, or honey slow down]
|
||||||
|
- Sabatons of Dominion
|
||||||
|
- One passive slot
|
||||||
|
- Grounded (You always have sure footing) [Removes levitation and ice]
|
||||||
|
- Arborist (You have an affinity with plants) [Crouch to bone meal]
|
||||||
|
|
||||||
|
- Staff of Supreme Command
|
||||||
|
- Internal inv
|
||||||
|
- One active (attack) slot
|
||||||
|
- Wither (Causes a foe to wither away) [Apply wither and slowness]
|
||||||
|
- Immolate (Causes foes to sacrifice themselves to you) [Burn enemy, heal player]
|
||||||
|
- Begone (Removes a foe from your sight) [Send 2000 blocks up]
|
||||||
|
- Smite (Strike a foe with a bolt of lightning) [Lightning]
|
||||||
|
- Terrify (Show a foe your true appearance) [Apply weakness, nausea, slowness for a time]
|
||||||
|
- Grovel (Forces a foe to collapse under your might) [Stop movement and force low pov]
|
||||||
|
|
||||||
|
- Embolden (Imbue an ally with your might) [Apply strength, speed, absorption for a time]
|
||||||
|
- Satisfy (Bless an ally with a full stomach) [Full food]
|
||||||
|
- Soothe (Soothe an ally, healing their wounds) [Full health]
|
||||||
|
- Defend (Protect an ally from injury) [Apply resistance 20 for a time]
|
||||||
|
- One passive (use) slot
|
||||||
|
- Collapse (Remove an obstacle from your path) [Break any block]
|
||||||
|
- Leap (Launch yourself into the air) [Jump ten blocks up]
|
||||||
|
- Howl (Call your canine allies to battle) [Summon strong wolves]
|
||||||
|
|
||||||
- Hammers and Excavators of these materials.
|
- Hammers and Excavators of these materials.
|
||||||
|
|
||||||
Weapons
|
Weapons
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.acethewildfire.acesbs.datagen;
|
|||||||
|
|
||||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.ModItems;
|
||||||
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import com.acethewildfire.acesbs.util.ModTags;
|
import com.acethewildfire.acesbs.util.ModTags;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
|
||||||
@@ -33,25 +34,25 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
|
|||||||
getOrCreateTagBuilder(ItemTags.BOW_ENCHANTABLE)
|
getOrCreateTagBuilder(ItemTags.BOW_ENCHANTABLE)
|
||||||
.add(ModItems.KAUPEN_BOW);
|
.add(ModItems.KAUPEN_BOW);
|
||||||
getOrCreateTagBuilder(ItemTags.SWORDS)
|
getOrCreateTagBuilder(ItemTags.SWORDS)
|
||||||
.add(ModItems.PRISMA_STEEL_SWORD);
|
.add(PrismaSteelItems.PRISMA_STEEL_SWORD);
|
||||||
getOrCreateTagBuilder(ItemTags.AXES)
|
getOrCreateTagBuilder(ItemTags.AXES)
|
||||||
.add(ModItems.PRISMA_STEEL_AXE);
|
.add(PrismaSteelItems.PRISMA_STEEL_AXE);
|
||||||
getOrCreateTagBuilder(ItemTags.PICKAXES)
|
getOrCreateTagBuilder(ItemTags.PICKAXES)
|
||||||
.add(ModItems.PRISMA_STEEL_PICKAXE);
|
.add(PrismaSteelItems.PRISMA_STEEL_PICKAXE);
|
||||||
getOrCreateTagBuilder(ItemTags.SHOVELS)
|
getOrCreateTagBuilder(ItemTags.SHOVELS)
|
||||||
.add(ModItems.PRISMA_STEEL_SHOVEL);
|
.add(PrismaSteelItems.PRISMA_STEEL_SHOVEL);
|
||||||
getOrCreateTagBuilder(ItemTags.HOES)
|
getOrCreateTagBuilder(ItemTags.HOES)
|
||||||
.add(ModItems.PRISMA_STEEL_HOE);
|
.add(PrismaSteelItems.PRISMA_STEEL_HOE);
|
||||||
getOrCreateTagBuilder(ItemTags.TRIMMABLE_ARMOR)
|
getOrCreateTagBuilder(ItemTags.TRIMMABLE_ARMOR)
|
||||||
.add(ModItems.PRISMA_STEEL_HELMET)
|
.add(PrismaSteelItems.PRISMA_STEEL_HELMET)
|
||||||
.add(ModItems.PRISMA_STEEL_CHESTPLATE)
|
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
|
||||||
.add(ModItems.PRISMA_STEEL_LEGGINGS)
|
.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS)
|
||||||
.add(ModItems.PRISMA_STEEL_BOOTS)
|
.add(PrismaSteelItems.PRISMA_STEEL_BOOTS)
|
||||||
.add(ModItems.BERSERKERS_PAULDRON);
|
.add(ModItems.BERSERKERS_PAULDRON);
|
||||||
getOrCreateTagBuilder(ItemTags.TRIM_MATERIALS)
|
getOrCreateTagBuilder(ItemTags.TRIM_MATERIALS)
|
||||||
.add(ModItems.PRISMA_STEEL);
|
.add(PrismaSteelItems.PRISMA_STEEL);
|
||||||
getOrCreateTagBuilder(ItemTags.TRIM_TEMPLATES)
|
getOrCreateTagBuilder(ItemTags.TRIM_TEMPLATES)
|
||||||
.add(ModItems.PRISMA_SMITHING_TEMPLATE);
|
.add(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE);
|
||||||
getOrCreateTagBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS)
|
getOrCreateTagBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS)
|
||||||
.add(ModItems.CRAB_RAVE_MUSIC_DISC);
|
.add(ModItems.CRAB_RAVE_MUSIC_DISC);
|
||||||
getOrCreateTagBuilder(ItemTags.LOGS_THAT_BURN)
|
getOrCreateTagBuilder(ItemTags.LOGS_THAT_BURN)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.acethewildfire.acesbs.datagen;
|
|||||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||||
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.ModItems;
|
||||||
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import com.acethewildfire.acesbs.util.ModTags;
|
import com.acethewildfire.acesbs.util.ModTags;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider;
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider;
|
||||||
@@ -120,7 +121,7 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider {
|
|||||||
LootPool.Builder defaultPool = LootPool.builder()
|
LootPool.Builder defaultPool = LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(minDrops, maxDrops))
|
.rolls(UniformLootNumberProvider.create(minDrops, maxDrops))
|
||||||
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
|
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
|
||||||
.conditionally(InvertedLootCondition.builder(specialToolCondition(ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL_HAMMER)))
|
.conditionally(InvertedLootCondition.builder(specialToolCondition(PrismaSteelItems.PRISMA_STEEL_PICKAXE, PrismaSteelItems.PRISMA_STEEL_HAMMER)))
|
||||||
.with(ItemEntry.builder(defaultItem).weight(1))
|
.with(ItemEntry.builder(defaultItem).weight(1))
|
||||||
.apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE)))
|
.apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE)))
|
||||||
.apply(ExplosionDecayLootFunction.builder());
|
.apply(ExplosionDecayLootFunction.builder());
|
||||||
@@ -134,7 +135,7 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider {
|
|||||||
LootPool.Builder prismaPool = LootPool.builder()
|
LootPool.Builder prismaPool = LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(minDrops, maxDrops))
|
.rolls(UniformLootNumberProvider.create(minDrops, maxDrops))
|
||||||
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
|
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
|
||||||
.conditionally(specialToolCondition(ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL_HAMMER))
|
.conditionally(specialToolCondition(PrismaSteelItems.PRISMA_STEEL_PICKAXE, PrismaSteelItems.PRISMA_STEEL_HAMMER))
|
||||||
.with(ItemEntry.builder(Items.AIR).weight(360))
|
.with(ItemEntry.builder(Items.AIR).weight(360))
|
||||||
.with(ItemEntry.builder(Items.COAL).weight(12))
|
.with(ItemEntry.builder(Items.COAL).weight(12))
|
||||||
.with(ItemEntry.builder(Items.RAW_COPPER).weight(10))
|
.with(ItemEntry.builder(Items.RAW_COPPER).weight(10))
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.acethewildfire.acesbs.block.ModBlocks;
|
|||||||
import com.acethewildfire.acesbs.block.custom.EvilBlock;
|
import com.acethewildfire.acesbs.block.custom.EvilBlock;
|
||||||
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.ModItems;
|
||||||
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
|
||||||
import net.minecraft.data.client.*;
|
import net.minecraft.data.client.*;
|
||||||
@@ -81,22 +82,23 @@ public class ModModelProvider extends FabricModelProvider {
|
|||||||
itemModelGenerator.register(ModItems.ORACLE_LEMON, Models.GENERATED);
|
itemModelGenerator.register(ModItems.ORACLE_LEMON, Models.GENERATED);
|
||||||
itemModelGenerator.register(ModItems.GREEN_BRICKS, Models.GENERATED);
|
itemModelGenerator.register(ModItems.GREEN_BRICKS, Models.GENERATED);
|
||||||
itemModelGenerator.register(ModItems.INFERNAL_ASHES, Models.GENERATED);
|
itemModelGenerator.register(ModItems.INFERNAL_ASHES, Models.GENERATED);
|
||||||
|
itemModelGenerator.register(ModItems.MOTE_OF_ORDER, Models.GENERATED);
|
||||||
// itemModelGenerator.register(ModItems.WAND, Models.HANDHELD_ROD);
|
// itemModelGenerator.register(ModItems.WAND, Models.HANDHELD_ROD);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL, Models.GENERATED);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL, Models.GENERATED);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_SMITHING_TEMPLATE, Models.GENERATED);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE, Models.GENERATED);
|
||||||
itemModelGenerator.register(ModItems.CRAB_RAVE_MUSIC_DISC, Models.GENERATED);
|
itemModelGenerator.register(ModItems.CRAB_RAVE_MUSIC_DISC, Models.GENERATED);
|
||||||
|
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL_SWORD, Models.HANDHELD);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL_SWORD, Models.HANDHELD);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL_PICKAXE, Models.HANDHELD);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL_PICKAXE, Models.HANDHELD);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL_HAMMER, Models.HANDHELD);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL_HAMMER, Models.HANDHELD);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL_AXE, Models.HANDHELD);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL_AXE, Models.HANDHELD);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL_SHOVEL, Models.HANDHELD);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL_SHOVEL, Models.HANDHELD);
|
||||||
itemModelGenerator.register(ModItems.PRISMA_STEEL_HOE, Models.HANDHELD);
|
itemModelGenerator.register(PrismaSteelItems.PRISMA_STEEL_HOE, Models.HANDHELD);
|
||||||
|
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_HELMET);
|
itemModelGenerator.registerArmor((ArmorItem) PrismaSteelItems.PRISMA_STEEL_HELMET);
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_CHESTPLATE);
|
itemModelGenerator.registerArmor((ArmorItem) PrismaSteelItems.PRISMA_STEEL_CHESTPLATE);
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_LEGGINGS);
|
itemModelGenerator.registerArmor((ArmorItem) PrismaSteelItems.PRISMA_STEEL_LEGGINGS);
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.PRISMA_STEEL_BOOTS);
|
itemModelGenerator.registerArmor((ArmorItem) PrismaSteelItems.PRISMA_STEEL_BOOTS);
|
||||||
|
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.BERSERKERS_PAULDRON);
|
itemModelGenerator.registerArmor((ArmorItem) ModItems.BERSERKERS_PAULDRON);
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.acethewildfire.acesbs.datagen;
|
|||||||
import com.acethewildfire.acesbs.AcesBS;
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.ModItems;
|
||||||
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
@@ -37,7 +38,7 @@ public class ModRecipeProvider extends FabricRecipeProvider {
|
|||||||
// ENDTROPY BLOCKS
|
// ENDTROPY BLOCKS
|
||||||
// offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.RAW_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.ENDTROPY_BLOCK);
|
// offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.RAW_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.ENDTROPY_BLOCK);
|
||||||
// offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.STABLE_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.STABLE_ENDTROPY_BLOCK);
|
// offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.STABLE_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.STABLE_ENDTROPY_BLOCK);
|
||||||
offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.PRISMA_STEEL, RecipeCategory.DECORATIONS, ModBlocks.PRISMA_STEEL_BLOCK);
|
offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, PrismaSteelItems.PRISMA_STEEL, RecipeCategory.DECORATIONS, ModBlocks.PRISMA_STEEL_BLOCK);
|
||||||
offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.INFERNAL_ASHES, RecipeCategory.DECORATIONS, ModBlocks.INFERNAL_ASHES_BLOCK);
|
offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.INFERNAL_ASHES, RecipeCategory.DECORATIONS, ModBlocks.INFERNAL_ASHES_BLOCK);
|
||||||
|
|
||||||
|
|
||||||
@@ -189,14 +190,14 @@ public class ModRecipeProvider extends FabricRecipeProvider {
|
|||||||
.criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS))
|
.criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS))
|
||||||
.offerTo(recipeExporter);
|
.offerTo(recipeExporter);
|
||||||
|
|
||||||
SwordRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SWORD, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL);
|
SwordRecipeJsonBuilder(recipeExporter, PrismaSteelItems.PRISMA_STEEL_SWORD, PrismaSteelItems.PRISMA_STEEL, Items.STICK, PrismaSteelItems.PRISMA_STEEL);
|
||||||
PickaxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL);
|
PickaxeRecipeJsonBuilder(recipeExporter, PrismaSteelItems.PRISMA_STEEL_PICKAXE, PrismaSteelItems.PRISMA_STEEL, Items.STICK, PrismaSteelItems.PRISMA_STEEL);
|
||||||
HammerRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HAMMER, ModItems.PRISMA_STEEL, ModBlocks.PRISMA_STEEL_BLOCK, Items.STICK, ModItems.PRISMA_STEEL);
|
HammerRecipeJsonBuilder(recipeExporter, PrismaSteelItems.PRISMA_STEEL_HAMMER, PrismaSteelItems.PRISMA_STEEL, ModBlocks.PRISMA_STEEL_BLOCK, Items.STICK, PrismaSteelItems.PRISMA_STEEL);
|
||||||
AxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_AXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL);
|
AxeRecipeJsonBuilder(recipeExporter, PrismaSteelItems.PRISMA_STEEL_AXE, PrismaSteelItems.PRISMA_STEEL, Items.STICK, PrismaSteelItems.PRISMA_STEEL);
|
||||||
ShovelRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SHOVEL, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL);
|
ShovelRecipeJsonBuilder(recipeExporter, PrismaSteelItems.PRISMA_STEEL_SHOVEL, PrismaSteelItems.PRISMA_STEEL, Items.STICK, PrismaSteelItems.PRISMA_STEEL);
|
||||||
HoeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HOE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL);
|
HoeRecipeJsonBuilder(recipeExporter, PrismaSteelItems.PRISMA_STEEL_HOE, PrismaSteelItems.PRISMA_STEEL, Items.STICK, PrismaSteelItems.PRISMA_STEEL);
|
||||||
|
|
||||||
offerSmithingTrimRecipe(recipeExporter, ModItems.PRISMA_SMITHING_TEMPLATE, Identifier.of(AcesBS.MOD_ID, "prisma"));
|
offerSmithingTrimRecipe(recipeExporter, PrismaSteelItems.PRISMA_SMITHING_TEMPLATE, Identifier.of(AcesBS.MOD_ID, "prisma"));
|
||||||
|
|
||||||
// For 2+ recipes with the same RESULT use
|
// For 2+ recipes with the same RESULT use
|
||||||
// .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, "output_item_from_input_item"));
|
// .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, "output_item_from_input_item"));
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.acethewildfire.acesbs.effect;
|
||||||
|
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.effect.StatusEffect;
|
||||||
|
import net.minecraft.entity.effect.StatusEffectCategory;
|
||||||
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
||||||
|
|
||||||
|
public class CigaretteEffect extends StatusEffect {
|
||||||
|
public CigaretteEffect(StatusEffectCategory category, int color) {
|
||||||
|
super(category, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean applyUpdateEffect(LivingEntity entity, int amplifier) {
|
||||||
|
StatusEffectInstance effect = entity.getStatusEffect(ModEffects.CIGARETTE);
|
||||||
|
|
||||||
|
if (effect == null) return true;
|
||||||
|
|
||||||
|
// When 1 tick remains, it's about to end
|
||||||
|
if (effect.getDuration() <= 1 && !entity.getWorld().isClient()) {
|
||||||
|
|
||||||
|
// Apply new effect
|
||||||
|
entity.addStatusEffect(new StatusEffectInstance(
|
||||||
|
ModEffects.JITTERY, // second effect
|
||||||
|
6000, // duration (10 sec)
|
||||||
|
0 // amplifier
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
if (!entity.getWorld().isClient()) {
|
||||||
|
entity.removeStatusEffect(ModEffects.JITTERY);
|
||||||
|
entity.removeStatusEffect(ModEffects.WITHDRAWAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyUpdateEffect(int duration, int amplifier) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package com.acethewildfire.acesbs.effect;
|
||||||
|
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.effect.StatusEffect;
|
||||||
|
import net.minecraft.entity.effect.StatusEffectCategory;
|
||||||
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class JitteryEffect extends StatusEffect {
|
||||||
|
protected JitteryEffect(StatusEffectCategory category, int color) {
|
||||||
|
super(category, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
Random r = new Random();
|
||||||
|
int timer = 0;
|
||||||
|
int maxTimer = 200;
|
||||||
|
int delay = 200;
|
||||||
|
int maxDelay = 20;
|
||||||
|
int times = 2;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean applyUpdateEffect(LivingEntity entity, int amplifier) {
|
||||||
|
StatusEffectInstance effect = entity.getStatusEffect(ModEffects.JITTERY);
|
||||||
|
if (effect == null) return true;
|
||||||
|
|
||||||
|
if (timer >= maxTimer){
|
||||||
|
//Time to do the jitterbug
|
||||||
|
if (times <= 0){
|
||||||
|
timer = 0;
|
||||||
|
maxTimer = r.nextInt(100, 200);
|
||||||
|
times = r.nextInt(2,5);
|
||||||
|
} else if (delay >= maxDelay) {
|
||||||
|
// Dance
|
||||||
|
double randomVelocityX = r.nextDouble(-0.3, 0.3);
|
||||||
|
double randomVelocityZ = r.nextDouble(-0.3, 0.3);
|
||||||
|
entity.addVelocity(randomVelocityX, 0, randomVelocityZ);
|
||||||
|
|
||||||
|
//Decrement times
|
||||||
|
times--;
|
||||||
|
|
||||||
|
//Set new delay
|
||||||
|
delay = 0;
|
||||||
|
maxDelay = r.nextInt(5, 10);
|
||||||
|
} else {
|
||||||
|
delay++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
timer++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When 1 tick remains, it's about to end
|
||||||
|
if (effect.getDuration() == 1 && !entity.getWorld().isClient()) {
|
||||||
|
|
||||||
|
// Apply new effect
|
||||||
|
entity.addStatusEffect(new StatusEffectInstance(
|
||||||
|
ModEffects.WITHDRAWAL, // second effect
|
||||||
|
12000, // duration
|
||||||
|
0 // amplifier
|
||||||
|
));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyUpdateEffect(int duration, int amplifier) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.acethewildfire.acesbs.effect;
|
package com.acethewildfire.acesbs.effect;
|
||||||
|
|
||||||
import com.acethewildfire.acesbs.AcesBS;
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
import net.minecraft.entity.attribute.EntityAttribute;
|
|
||||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
import net.minecraft.entity.effect.StatusEffect;
|
import net.minecraft.entity.effect.StatusEffect;
|
||||||
@@ -27,6 +26,19 @@ public class ModEffects {
|
|||||||
public static final RegistryEntry<StatusEffect> BRICKED_UP = registerStatusEffect("bricked_up",
|
public static final RegistryEntry<StatusEffect> BRICKED_UP = registerStatusEffect("bricked_up",
|
||||||
new BrickedUpEffect(StatusEffectCategory.NEUTRAL, 0x8e4631));
|
new BrickedUpEffect(StatusEffectCategory.NEUTRAL, 0x8e4631));
|
||||||
|
|
||||||
|
public static final RegistryEntry<StatusEffect> CIGARETTE = registerStatusEffect("cigarette",
|
||||||
|
new CigaretteEffect(StatusEffectCategory.BENEFICIAL, 0xE6A74F)
|
||||||
|
.addAttributeModifier(EntityAttributes.GENERIC_MOVEMENT_SPEED, Identifier.of(AcesBS.MOD_ID, "cigarette"),
|
||||||
|
1F, EntityAttributeModifier.Operation.ADD_MULTIPLIED_TOTAL));
|
||||||
|
|
||||||
|
public static final RegistryEntry<StatusEffect> WITHDRAWAL = registerStatusEffect("withdrawal",
|
||||||
|
new WithdrawalEffect(StatusEffectCategory.HARMFUL, 0x4A412A)
|
||||||
|
.addAttributeModifier(EntityAttributes.GENERIC_MOVEMENT_SPEED, Identifier.of(AcesBS.MOD_ID, "withdrawal"),
|
||||||
|
-0.5F, EntityAttributeModifier.Operation.ADD_MULTIPLIED_TOTAL));
|
||||||
|
|
||||||
|
public static final RegistryEntry<StatusEffect> JITTERY = registerStatusEffect("jittery",
|
||||||
|
new JitteryEffect(StatusEffectCategory.HARMFUL, 0xeb9bff));
|
||||||
|
|
||||||
private static RegistryEntry<StatusEffect> registerStatusEffect (String name, StatusEffect effect){
|
private static RegistryEntry<StatusEffect> registerStatusEffect (String name, StatusEffect effect){
|
||||||
return Registry.registerReference(Registries.STATUS_EFFECT, Identifier.of(AcesBS.MOD_ID, name), effect);
|
return Registry.registerReference(Registries.STATUS_EFFECT, Identifier.of(AcesBS.MOD_ID, name), effect);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.acethewildfire.acesbs.effect;
|
||||||
|
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.effect.StatusEffect;
|
||||||
|
import net.minecraft.entity.effect.StatusEffectCategory;
|
||||||
|
|
||||||
|
public class WithdrawalEffect extends StatusEffect {
|
||||||
|
protected WithdrawalEffect(StatusEffectCategory category, int color) {
|
||||||
|
super(category, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean applyUpdateEffect(LivingEntity entity, int amplifier) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyUpdateEffect(int duration, int amplifier) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@ package com.acethewildfire.acesbs.item;
|
|||||||
import com.acethewildfire.acesbs.effect.ModEffects;
|
import com.acethewildfire.acesbs.effect.ModEffects;
|
||||||
import net.minecraft.component.type.FoodComponent;
|
import net.minecraft.component.type.FoodComponent;
|
||||||
import net.minecraft.entity.effect.StatusEffectInstance;
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
||||||
import net.minecraft.entity.effect.StatusEffects;
|
|
||||||
|
|
||||||
public class ModFoodComponent {
|
public class ModFoodComponent {
|
||||||
|
|
||||||
@@ -29,4 +28,10 @@ public class ModFoodComponent {
|
|||||||
.statusEffect(new StatusEffectInstance(ModEffects.BRICKED_UP, 160), 1f)
|
.statusEffect(new StatusEffectInstance(ModEffects.BRICKED_UP, 160), 1f)
|
||||||
.alwaysEdible()
|
.alwaysEdible()
|
||||||
.build();
|
.build();
|
||||||
|
public static final FoodComponent CIGARETTE = new FoodComponent.Builder()
|
||||||
|
.nutrition(0)
|
||||||
|
.saturationModifier(0f)
|
||||||
|
.statusEffect(new StatusEffectInstance(ModEffects.CIGARETTE, 6000), 1f)
|
||||||
|
.alwaysEdible()
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ public class ModItemGroups {
|
|||||||
entries.add(ModItems.INFERNAL_ASHES);
|
entries.add(ModItems.INFERNAL_ASHES);
|
||||||
entries.add(ModItems.RAW_ENDTROPY);
|
entries.add(ModItems.RAW_ENDTROPY);
|
||||||
entries.add(ModItems.STABLE_ENDTROPY);
|
entries.add(ModItems.STABLE_ENDTROPY);
|
||||||
entries.add(ModItems.PRISMA_STEEL);
|
entries.add(PrismaSteelItems.PRISMA_STEEL);
|
||||||
|
entries.add(ModItems.MOTE_OF_ORDER);
|
||||||
entries.add(ModItems.LEMON);
|
entries.add(ModItems.LEMON);
|
||||||
entries.add(ModItems.COOKED_LEMON);
|
entries.add(ModItems.COOKED_LEMON);
|
||||||
entries.add(ModItems.INFERNAL_BEEF);
|
entries.add(ModItems.INFERNAL_BEEF);
|
||||||
@@ -31,6 +32,9 @@ public class ModItemGroups {
|
|||||||
entries.add(ModItems.CRAB_RAVE_MUSIC_DISC);
|
entries.add(ModItems.CRAB_RAVE_MUSIC_DISC);
|
||||||
entries.add(ModItems.TOBACCO_SEEDS);
|
entries.add(ModItems.TOBACCO_SEEDS);
|
||||||
entries.add(ModItems.TOBACCO);
|
entries.add(ModItems.TOBACCO);
|
||||||
|
entries.add(ModItems.CIGARETTE);
|
||||||
|
entries.add(ModItems.CIGARETTE_LEMON);
|
||||||
|
entries.add(ModItems.CIGARETTE_FUNNY);
|
||||||
entries.add(ModItems.FREN_SPAWN_EGG);
|
entries.add(ModItems.FREN_SPAWN_EGG);
|
||||||
})
|
})
|
||||||
.build();
|
.build();
|
||||||
@@ -83,16 +87,16 @@ public class ModItemGroups {
|
|||||||
|
|
||||||
public static final ItemGroup ACES_BS_COMBAT =
|
public static final ItemGroup ACES_BS_COMBAT =
|
||||||
FabricItemGroup.builder()
|
FabricItemGroup.builder()
|
||||||
.icon(() -> new ItemStack(ModItems.PRISMA_STEEL_SWORD))
|
.icon(() -> new ItemStack(PrismaSteelItems.PRISMA_STEEL_SWORD))
|
||||||
.displayName(Text.translatable("itemgroup.acesbs.4_combat"))
|
.displayName(Text.translatable("itemgroup.acesbs.4_combat"))
|
||||||
.entries((displayContext, entries) -> {
|
.entries((displayContext, entries) -> {
|
||||||
entries.add(ModItems.PRISMA_STEEL_SWORD);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_SWORD);
|
||||||
entries.add(ModItems.PRISMA_STEEL_AXE);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_AXE);
|
||||||
entries.add(ModItems.PRISMA_STEEL_HELMET);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_HELMET);
|
||||||
entries.add(ModItems.PRISMA_STEEL_CHESTPLATE);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE);
|
||||||
entries.add(ModItems.PRISMA_STEEL_LEGGINGS);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS);
|
||||||
entries.add(ModItems.PRISMA_STEEL_BOOTS);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_BOOTS);
|
||||||
entries.add(ModItems.PRISMA_SMITHING_TEMPLATE);
|
entries.add(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE);
|
||||||
entries.add(ModItems.KAUPEN_BOW);
|
entries.add(ModItems.KAUPEN_BOW);
|
||||||
entries.add(ModItems.COMBUSTIBLE_LEMON);
|
entries.add(ModItems.COMBUSTIBLE_LEMON);
|
||||||
entries.add(ModItems.BERSERKERS_PAULDRON);
|
entries.add(ModItems.BERSERKERS_PAULDRON);
|
||||||
@@ -103,15 +107,15 @@ public class ModItemGroups {
|
|||||||
|
|
||||||
public static final ItemGroup ACES_BS_TOOLS =
|
public static final ItemGroup ACES_BS_TOOLS =
|
||||||
FabricItemGroup.builder()
|
FabricItemGroup.builder()
|
||||||
.icon(() -> new ItemStack(ModItems.PRISMA_STEEL_PICKAXE))
|
.icon(() -> new ItemStack(PrismaSteelItems.PRISMA_STEEL_PICKAXE))
|
||||||
.displayName(Text.translatable("itemgroup.acesbs.3_tools"))
|
.displayName(Text.translatable("itemgroup.acesbs.3_tools"))
|
||||||
.entries((displayContext, entries) -> {
|
.entries((displayContext, entries) -> {
|
||||||
entries.add(ModItems.WAND);
|
entries.add(ModItems.WAND);
|
||||||
entries.add(ModItems.PRISMA_STEEL_SHOVEL);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_SHOVEL);
|
||||||
entries.add(ModItems.PRISMA_STEEL_PICKAXE);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_PICKAXE);
|
||||||
entries.add(ModItems.PRISMA_STEEL_HAMMER);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_HAMMER);
|
||||||
entries.add(ModItems.PRISMA_STEEL_AXE);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_AXE);
|
||||||
entries.add(ModItems.PRISMA_STEEL_HOE);
|
entries.add(PrismaSteelItems.PRISMA_STEEL_HOE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,27 +2,27 @@ package com.acethewildfire.acesbs.item;
|
|||||||
|
|
||||||
import com.acethewildfire.acesbs.AcesBS;
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||||
import com.acethewildfire.acesbs.item.custom.*;
|
|
||||||
import com.acethewildfire.acesbs.entity.ModEntities;
|
import com.acethewildfire.acesbs.entity.ModEntities;
|
||||||
|
import com.acethewildfire.acesbs.item.custom.*;
|
||||||
import com.acethewildfire.acesbs.potion.ModPotions;
|
import com.acethewildfire.acesbs.potion.ModPotions;
|
||||||
import com.acethewildfire.acesbs.sounds.ModSounds;
|
import com.acethewildfire.acesbs.sounds.ModSounds;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.component.type.*;
|
import net.minecraft.component.type.AttributeModifierSlot;
|
||||||
|
import net.minecraft.component.type.AttributeModifiersComponent;
|
||||||
|
import net.minecraft.component.type.LoreComponent;
|
||||||
|
import net.minecraft.component.type.PotionContentsComponent;
|
||||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
import net.minecraft.item.*;
|
import net.minecraft.item.*;
|
||||||
import net.minecraft.item.tooltip.TooltipType;
|
import net.minecraft.item.tooltip.TooltipType;
|
||||||
import net.minecraft.registry.Registries;
|
import net.minecraft.registry.Registries;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.resource.featuretoggle.FeatureFlags;
|
|
||||||
import net.minecraft.text.RawFilteredPair;
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class ModItems {
|
public class ModItems {
|
||||||
public static final Item ORACLE_LEMON = registerItem("oracle_lemon", new OracleLemon(new Item.Settings().component(DataComponentTypes.POTION_CONTENTS, new PotionContentsComponent(ModPotions.LEMON))));
|
public static final Item ORACLE_LEMON = registerItem("oracle_lemon", new OracleLemon(new Item.Settings().component(DataComponentTypes.POTION_CONTENTS, new PotionContentsComponent(ModPotions.LEMON))));
|
||||||
@@ -78,52 +78,17 @@ public class ModItems {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL = registerItem("prisma_steel", new Item(new Item.Settings()));
|
public static final Item MOTE_OF_ORDER = registerItem("mote_of_order", new Item(new Item.Settings()) {
|
||||||
public static final Item PRISMA_STEEL_SWORD = registerItem("prisma_steel_sword",
|
public void appendTooltip(ItemStack stack, TooltipContext context, List<Text> tooltip, TooltipType type) {
|
||||||
new SwordItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
if(!Screen.hasShiftDown()){
|
||||||
.attributeModifiers(SwordItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 3, -2.4f))));
|
tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_up"));
|
||||||
|
}
|
||||||
public static final Item PRISMA_STEEL_SHOVEL = registerItem("prisma_steel_shovel",
|
else {
|
||||||
new ShovelItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
tooltip.add(Text.translatable("tooltip.acesbs.mote_of_order"));
|
||||||
.attributeModifiers(ShovelItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 1.5F, -3.0F)))
|
}
|
||||||
);
|
super.appendTooltip(stack, context, tooltip, type);
|
||||||
public static final Item PRISMA_STEEL_PICKAXE = registerItem("prisma_steel_pickaxe",
|
}
|
||||||
new PickaxeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
});
|
||||||
.attributeModifiers(PickaxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 1.0F, -2.8F)))
|
|
||||||
);
|
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL_HAMMER = registerItem("prisma_steel_hammer",
|
|
||||||
new HammerItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
|
||||||
.attributeModifiers(PickaxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 7.0F, -3.4F)))
|
|
||||||
);
|
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL_AXE = registerItem("prisma_steel_axe",
|
|
||||||
new AxeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
|
||||||
.attributeModifiers(AxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 6.0F, -3.1F)))
|
|
||||||
);
|
|
||||||
public static final Item PRISMA_STEEL_HOE = registerItem("prisma_steel_hoe",
|
|
||||||
new HoeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
|
||||||
.attributeModifiers(HoeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, -2.0F, -1.0F)))
|
|
||||||
);
|
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL_HELMET = registerItem("prisma_steel_helmet",
|
|
||||||
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Settings()
|
|
||||||
.maxDamage(ArmorItem.Type.HELMET.getMaxDamage(15))));
|
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL_CHESTPLATE = registerItem("prisma_steel_chestplate",
|
|
||||||
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Settings()
|
|
||||||
.maxDamage(ArmorItem.Type.CHESTPLATE.getMaxDamage(15))));
|
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL_LEGGINGS = registerItem("prisma_steel_leggings",
|
|
||||||
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Settings()
|
|
||||||
.maxDamage(ArmorItem.Type.LEGGINGS.getMaxDamage(15))));
|
|
||||||
|
|
||||||
public static final Item PRISMA_STEEL_BOOTS = registerItem("prisma_steel_boots",
|
|
||||||
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Settings()
|
|
||||||
.maxDamage(ArmorItem.Type.BOOTS.getMaxDamage(15))));
|
|
||||||
|
|
||||||
public static final Item PRISMA_SMITHING_TEMPLATE = registerItem("prisma_armor_trim_smithing_template",
|
|
||||||
SmithingTemplateItem.of(Identifier.of(AcesBS.MOD_ID, "prisma"), FeatureFlags.VANILLA));
|
|
||||||
|
|
||||||
public static final Item KAUPEN_BOW = registerItem("kaupen_bow",
|
public static final Item KAUPEN_BOW = registerItem("kaupen_bow",
|
||||||
new BowItem(new Item.Settings().maxDamage(500)) {
|
new BowItem(new Item.Settings().maxDamage(500)) {
|
||||||
@@ -137,9 +102,6 @@ public class ModItems {
|
|||||||
tooltip.add(Text.translatable("tooltip.acesbs.kaupen_bow"));
|
tooltip.add(Text.translatable("tooltip.acesbs.kaupen_bow"));
|
||||||
tooltip.add(Text.translatable("tooltip.acesbs.kaupen_bow_2"));
|
tooltip.add(Text.translatable("tooltip.acesbs.kaupen_bow_2"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
super.appendTooltip(stack, context, tooltip, type);
|
super.appendTooltip(stack, context, tooltip, type);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -177,14 +139,31 @@ public class ModItems {
|
|||||||
|
|
||||||
public static final Item TOBACCO = registerItem("tobacco", new Item(new Item.Settings()));
|
public static final Item TOBACCO = registerItem("tobacco", new Item(new Item.Settings()));
|
||||||
|
|
||||||
|
public static final Item CIGARETTE = registerItem("cigarette", new Cigarette(new Item.Settings().maxCount(20)));
|
||||||
|
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 void appendTooltip(ItemStack stack, TooltipContext context, List<Text> tooltip, TooltipType type) {
|
||||||
|
if(!Screen.hasShiftDown()){
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_up"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.cigarette_funny"));
|
||||||
|
}
|
||||||
|
super.appendTooltip(stack, context, tooltip, type);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
public static final Item FREN_SPAWN_EGG = registerItem("fren_spawn_egg",
|
public static final Item FREN_SPAWN_EGG = registerItem("fren_spawn_egg",
|
||||||
new SpawnEggItem(ModEntities.FREN, 894731, 0, new Item.Settings()));
|
new SpawnEggItem(ModEntities.FREN, 894731, 0, new Item.Settings()));
|
||||||
|
|
||||||
private static Item registerItem(String name, Item item){
|
|
||||||
|
|
||||||
|
public 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerModItems() {
|
public static void registerModItems() {
|
||||||
|
PrismaSteelItems.registerPrismaItems();
|
||||||
AcesBS.LOGGER.info("Registering Mod Items for " + AcesBS.MOD_ID);
|
AcesBS.LOGGER.info("Registering Mod Items for " + AcesBS.MOD_ID);
|
||||||
|
|
||||||
// ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(fabricItemGroupEntries -> {
|
// ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(fabricItemGroupEntries -> {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public enum ModToolMaterials implements ToolMaterial {
|
|||||||
// GOLD(BlockTags.INCORRECT_FOR_GOLD_TOOL, 32, 12.0F, 0.0F, 22, () -> Ingredient.ofItems(Items.GOLD_INGOT)),
|
// GOLD(BlockTags.INCORRECT_FOR_GOLD_TOOL, 32, 12.0F, 0.0F, 22, () -> Ingredient.ofItems(Items.GOLD_INGOT)),
|
||||||
// NETHERITE(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2031, 9.0F, 4.0F, 15, () -> Ingredient.ofItems(Items.NETHERITE_INGOT));
|
// NETHERITE(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2031, 9.0F, 4.0F, 15, () -> Ingredient.ofItems(Items.NETHERITE_INGOT));
|
||||||
|
|
||||||
PRISMA_STEEL(ModTags.Blocks.INCORRECT_FOR_PRISMA_STEEL_TOOL, 750, 8.0F, 2.0F, 22, () -> Ingredient.ofItems(ModItems.PRISMA_STEEL));
|
PRISMA_STEEL(ModTags.Blocks.INCORRECT_FOR_PRISMA_STEEL_TOOL, 750, 8.0F, 2.0F, 22, () -> Ingredient.ofItems(PrismaSteelItems.PRISMA_STEEL));
|
||||||
|
|
||||||
private final TagKey<Block> inverseTag;
|
private final TagKey<Block> inverseTag;
|
||||||
private final int itemDurability;
|
private final int itemDurability;
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.acethewildfire.acesbs.item;
|
||||||
|
|
||||||
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
|
import com.acethewildfire.acesbs.item.custom.HammerItem;
|
||||||
|
import com.acethewildfire.acesbs.item.custom.ModArmorItem;
|
||||||
|
import net.minecraft.item.*;
|
||||||
|
import net.minecraft.resource.featuretoggle.FeatureFlags;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
public class PrismaSteelItems {
|
||||||
|
|
||||||
|
public static final Item PRISMA_STEEL = ModItems.registerItem("prisma_steel", new Item(new Item.Settings()));
|
||||||
|
public static final Item PRISMA_STEEL_SWORD = ModItems.registerItem("prisma_steel_sword",
|
||||||
|
new SwordItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
||||||
|
.attributeModifiers(SwordItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 3, -2.4f))));
|
||||||
|
public static final Item PRISMA_STEEL_SHOVEL = ModItems.registerItem("prisma_steel_shovel",
|
||||||
|
new ShovelItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
||||||
|
.attributeModifiers(ShovelItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 1.5F, -3.0F)))
|
||||||
|
);
|
||||||
|
public static final Item PRISMA_STEEL_PICKAXE = ModItems.registerItem("prisma_steel_pickaxe",
|
||||||
|
new PickaxeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
||||||
|
.attributeModifiers(PickaxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 1.0F, -2.8F)))
|
||||||
|
);
|
||||||
|
public static final Item PRISMA_STEEL_HAMMER = ModItems.registerItem("prisma_steel_hammer",
|
||||||
|
new HammerItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
||||||
|
.attributeModifiers(PickaxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 7.0F, -3.4F)))
|
||||||
|
);
|
||||||
|
public static final Item PRISMA_STEEL_AXE = ModItems.registerItem("prisma_steel_axe",
|
||||||
|
new AxeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
||||||
|
.attributeModifiers(AxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 6.0F, -3.1F)))
|
||||||
|
);
|
||||||
|
public static final Item PRISMA_STEEL_HOE = ModItems.registerItem("prisma_steel_hoe",
|
||||||
|
new HoeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings()
|
||||||
|
.attributeModifiers(HoeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, -2.0F, -1.0F)))
|
||||||
|
);
|
||||||
|
public static final Item PRISMA_STEEL_HELMET = ModItems.registerItem("prisma_steel_helmet",
|
||||||
|
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Settings()
|
||||||
|
.maxDamage(ArmorItem.Type.HELMET.getMaxDamage(15))));
|
||||||
|
public static final Item PRISMA_STEEL_CHESTPLATE = ModItems.registerItem("prisma_steel_chestplate",
|
||||||
|
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Settings()
|
||||||
|
.maxDamage(ArmorItem.Type.CHESTPLATE.getMaxDamage(15))));
|
||||||
|
public static final Item PRISMA_STEEL_LEGGINGS = ModItems.registerItem("prisma_steel_leggings",
|
||||||
|
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Settings()
|
||||||
|
.maxDamage(ArmorItem.Type.LEGGINGS.getMaxDamage(15))));
|
||||||
|
public static final Item PRISMA_STEEL_BOOTS = ModItems.registerItem("prisma_steel_boots",
|
||||||
|
new ModArmorItem(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Settings()
|
||||||
|
.maxDamage(ArmorItem.Type.BOOTS.getMaxDamage(15))));
|
||||||
|
public static final Item PRISMA_SMITHING_TEMPLATE = ModItems.registerItem("prisma_armor_trim_smithing_template",
|
||||||
|
SmithingTemplateItem.of(Identifier.of(AcesBS.MOD_ID, "prisma"), FeatureFlags.VANILLA));
|
||||||
|
|
||||||
|
public static void registerPrismaItems() {
|
||||||
|
// Do nothing, this just makes sure the items get registered
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
package com.acethewildfire.acesbs.item.custom;
|
||||||
|
|
||||||
|
import com.acethewildfire.acesbs.component.ModDataComponentTypes;
|
||||||
|
import com.acethewildfire.acesbs.effect.ModEffects;
|
||||||
|
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 Cigarette extends Item {
|
||||||
|
public Cigarette(Settings settings) {
|
||||||
|
super(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {
|
||||||
|
if (!user.getItemCooldownManager().isCoolingDown(this)) {
|
||||||
|
user.setCurrentHand(hand);
|
||||||
|
user.getStackInHand(hand).set(ModDataComponentTypes.SMOKING, true);
|
||||||
|
return TypedActionResult.consume(user.getStackInHand(hand));
|
||||||
|
}
|
||||||
|
return TypedActionResult.fail(user.getStackInHand(hand));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks) {
|
||||||
|
super.onStoppedUsing(stack, world, user, remainingUseTicks);
|
||||||
|
stack.set(ModDataComponentTypes.SMOKING, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UseAction getUseAction(ItemStack stack) {
|
||||||
|
return UseAction.TOOT_HORN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SoundEvent getEatSound() {
|
||||||
|
return SoundEvents.INTENTIONALLY_EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxUseTime(ItemStack stack, LivingEntity user) {
|
||||||
|
return 50; // basically infinite hold
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) {
|
||||||
|
super.usageTick(world, user, stack, remainingUseTicks);
|
||||||
|
|
||||||
|
if (world.isClient) {
|
||||||
|
|
||||||
|
// Direction player is looking
|
||||||
|
Vec3d look = user.getRotationVec(1.0f);
|
||||||
|
|
||||||
|
// Spawn position (near mouth)
|
||||||
|
double x = user.getX() + look.x * 0.3;
|
||||||
|
double y = user.getEyeY() - 0.15;
|
||||||
|
double z = user.getZ() + look.z * 0.3;
|
||||||
|
|
||||||
|
// Base outward velocity
|
||||||
|
double speed = 0.08;
|
||||||
|
|
||||||
|
// Add small randomness so it spreads naturally
|
||||||
|
double vx = look.x * speed + (world.random.nextDouble() - 0.5) * 0.02;
|
||||||
|
double vy = 0.02 + (world.random.nextDouble() * 0.02); // slight upward drift
|
||||||
|
double vz = look.z * speed + (world.random.nextDouble() - 0.5) * 0.02;
|
||||||
|
|
||||||
|
if (remainingUseTicks % 4 == 0) {
|
||||||
|
world.addParticle(
|
||||||
|
ParticleTypes.SMOKE,
|
||||||
|
x, y, z,
|
||||||
|
vx, vy, vz
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Serverside code
|
||||||
|
if (!world.isClient){
|
||||||
|
if (remainingUseTicks % 40 == 0) {
|
||||||
|
world.playSound(
|
||||||
|
null,
|
||||||
|
user.getX(),
|
||||||
|
user.getY(),
|
||||||
|
user.getZ(),
|
||||||
|
SoundEvents.ENTITY_GENERIC_EXTINGUISH_FIRE,
|
||||||
|
SoundCategory.PLAYERS,
|
||||||
|
1.0f,
|
||||||
|
1.0f
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) {
|
||||||
|
user.addStatusEffect(new StatusEffectInstance(
|
||||||
|
ModEffects.CIGARETTE,
|
||||||
|
6000,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
stack.set(ModDataComponentTypes.SMOKING, false);
|
||||||
|
if (user instanceof PlayerEntity player) {
|
||||||
|
player.getItemCooldownManager().set(this, 2400);
|
||||||
|
stack.decrement(1);
|
||||||
|
}
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
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 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.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 CigaretteFunny extends Item {
|
||||||
|
public CigaretteFunny(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) {
|
||||||
|
if (!user.getItemCooldownManager().isCoolingDown(this)) {
|
||||||
|
user.setCurrentHand(hand);
|
||||||
|
user.getStackInHand(hand).set(ModDataComponentTypes.SMOKING, true);
|
||||||
|
return TypedActionResult.consume(user.getStackInHand(hand));
|
||||||
|
}
|
||||||
|
return TypedActionResult.fail(user.getStackInHand(hand));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks) {
|
||||||
|
super.onStoppedUsing(stack, world, user, remainingUseTicks);
|
||||||
|
|
||||||
|
if (activeSound != null) {
|
||||||
|
MinecraftClient.getInstance().getSoundManager().stop(activeSound);
|
||||||
|
activeSound = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.set(ModDataComponentTypes.SMOKING, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UseAction getUseAction(ItemStack stack) {
|
||||||
|
return UseAction.TOOT_HORN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SoundEvent getEatSound() {
|
||||||
|
return SoundEvents.INTENTIONALLY_EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxUseTime(ItemStack stack, LivingEntity user) {
|
||||||
|
return 72000; // basically infinite hold
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) {
|
||||||
|
super.usageTick(world, user, stack, remainingUseTicks);
|
||||||
|
|
||||||
|
if (world.isClient) {
|
||||||
|
|
||||||
|
if (activeSound == null) {
|
||||||
|
activeSound = new PlayerAttachedSound(
|
||||||
|
((PlayerEntity) user),
|
||||||
|
ModSounds.SMOKING
|
||||||
|
);
|
||||||
|
|
||||||
|
MinecraftClient.getInstance().getSoundManager().play(activeSound);
|
||||||
|
}
|
||||||
|
// Direction player is looking
|
||||||
|
Vec3d look = user.getRotationVec(1.0f);
|
||||||
|
|
||||||
|
// Spawn position (near mouth)
|
||||||
|
double x = user.getX() + look.x * 0.3;
|
||||||
|
double y = user.getEyeY() - 0.15;
|
||||||
|
double z = user.getZ() + look.z * 0.3;
|
||||||
|
|
||||||
|
// Base outward velocity
|
||||||
|
double speed = 0.3;
|
||||||
|
|
||||||
|
for (int i = 0; i < 40; i++) {
|
||||||
|
double vx = look.x * speed + (world.random.nextDouble() - 0.5) * 0.3;
|
||||||
|
double vy = look.y * speed + (world.random.nextDouble() - 0.5) * 0.1;
|
||||||
|
double vz = look.z * speed + (world.random.nextDouble() - 0.5) * 0.3;
|
||||||
|
|
||||||
|
world.addParticle(
|
||||||
|
ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||||
|
x, y, z,
|
||||||
|
vx, vy, vz
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Serverside code
|
||||||
|
if (!world.isClient) {
|
||||||
|
// if (remainingUseTicks % 40 == 0) {
|
||||||
|
// world.playSound(
|
||||||
|
// null,
|
||||||
|
// user.getX(),
|
||||||
|
// user.getY(),
|
||||||
|
// user.getZ(),
|
||||||
|
// SoundEvents.ENTITY_GENERIC_EXTINGUISH_FIRE,
|
||||||
|
// SoundCategory.PLAYERS,
|
||||||
|
// 1.0f,
|
||||||
|
// 1.0f
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) {
|
||||||
|
user.addStatusEffect(new StatusEffectInstance(
|
||||||
|
ModEffects.CIGARETTE,
|
||||||
|
6000,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
stack.set(ModDataComponentTypes.SMOKING, false);
|
||||||
|
if (user instanceof PlayerEntity player) {
|
||||||
|
player.getItemCooldownManager().set(this, 2400);
|
||||||
|
stack.decrement(1);
|
||||||
|
}
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
package com.acethewildfire.acesbs.item.custom;
|
||||||
|
|
||||||
|
import com.acethewildfire.acesbs.component.ModDataComponentTypes;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
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;
|
||||||
|
import net.minecraft.world.explosion.Explosion;
|
||||||
|
|
||||||
|
public class CigaretteLemon extends Item {
|
||||||
|
public CigaretteLemon(Settings settings) {
|
||||||
|
super(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {
|
||||||
|
if (!user.getItemCooldownManager().isCoolingDown(this)) {
|
||||||
|
user.setCurrentHand(hand);
|
||||||
|
user.getStackInHand(hand).set(ModDataComponentTypes.SMOKING, true);
|
||||||
|
return TypedActionResult.consume(user.getStackInHand(hand));
|
||||||
|
}
|
||||||
|
return TypedActionResult.fail(user.getStackInHand(hand));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UseAction getUseAction(ItemStack stack) {
|
||||||
|
return UseAction.TOOT_HORN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks) {
|
||||||
|
super.onStoppedUsing(stack, world, user, remainingUseTicks);
|
||||||
|
stack.set(ModDataComponentTypes.SMOKING, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SoundEvent getEatSound() {
|
||||||
|
return SoundEvents.INTENTIONALLY_EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxUseTime(ItemStack stack, LivingEntity user) {
|
||||||
|
return 50; // basically infinite hold
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) {
|
||||||
|
super.usageTick(world, user, stack, remainingUseTicks);
|
||||||
|
|
||||||
|
if (world.isClient) {
|
||||||
|
|
||||||
|
// Direction player is looking
|
||||||
|
Vec3d look = user.getRotationVec(1.0f);
|
||||||
|
|
||||||
|
// Spawn position (near mouth)
|
||||||
|
double x = user.getX() + look.x * 0.3;
|
||||||
|
double y = user.getEyeY() - 0.15;
|
||||||
|
double z = user.getZ() + look.z * 0.3;
|
||||||
|
|
||||||
|
// Base outward velocity
|
||||||
|
double speed = 0.08;
|
||||||
|
|
||||||
|
// Add small randomness so it spreads naturally
|
||||||
|
double vx = look.x * speed + (world.random.nextDouble() - 0.5) * 0.02;
|
||||||
|
double vy = 0.02 + (world.random.nextDouble() * 0.02); // slight upward drift
|
||||||
|
double vz = look.z * speed + (world.random.nextDouble() - 0.5) * 0.02;
|
||||||
|
|
||||||
|
if (remainingUseTicks % 4 == 0) {
|
||||||
|
world.addParticle(
|
||||||
|
ParticleTypes.SMOKE,
|
||||||
|
x, y, z,
|
||||||
|
vx, vy, vz
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Serverside code
|
||||||
|
if (!world.isClient){
|
||||||
|
if (remainingUseTicks % 40 == 0) {
|
||||||
|
world.playSound(
|
||||||
|
null,
|
||||||
|
user.getX(),
|
||||||
|
user.getY(),
|
||||||
|
user.getZ(),
|
||||||
|
SoundEvents.ENTITY_GENERIC_EXTINGUISH_FIRE,
|
||||||
|
SoundCategory.PLAYERS,
|
||||||
|
1.0f,
|
||||||
|
1.0f
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) {
|
||||||
|
// Eye position of the player
|
||||||
|
Vec3d eyePos = user.getCameraPosVec(1.0F);
|
||||||
|
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
double offsetX = (world.random.nextDouble() - 0.5) * 2 * 0.5f;
|
||||||
|
double offsetY = (world.random.nextDouble() - 0.5) * 2 * 0.5f;
|
||||||
|
double offsetZ = (world.random.nextDouble() - 0.5) * 2 * 0.5f;
|
||||||
|
|
||||||
|
world.addParticle(
|
||||||
|
ParticleTypes.EXPLOSION,
|
||||||
|
eyePos.x + offsetX,
|
||||||
|
eyePos.y + offsetY,
|
||||||
|
eyePos.z + offsetZ,
|
||||||
|
1, 0, 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
stack.set(ModDataComponentTypes.SMOKING, false);
|
||||||
|
Explosion explosion = new Explosion(
|
||||||
|
world,
|
||||||
|
user,
|
||||||
|
user.getX(),
|
||||||
|
user.getY(),
|
||||||
|
user.getZ(),
|
||||||
|
4.0f,
|
||||||
|
false,
|
||||||
|
Explosion.DestructionType.KEEP
|
||||||
|
);
|
||||||
|
explosion.collectBlocksAndDamageEntities();
|
||||||
|
user.damage(user.getDamageSources().explosion(user, user), 20F);
|
||||||
|
explosion.affectWorld(true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (user instanceof PlayerEntity player) {
|
||||||
|
player.getItemCooldownManager().set(this, 2400);
|
||||||
|
stack.decrement(1);
|
||||||
|
}
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,9 +6,7 @@ import net.minecraft.registry.Registries;
|
|||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKey;
|
import net.minecraft.registry.RegistryKey;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.sound.BlockSoundGroup;
|
|
||||||
import net.minecraft.sound.SoundEvent;
|
import net.minecraft.sound.SoundEvent;
|
||||||
import net.minecraft.sound.SoundEvents;
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
public class ModSounds {
|
public class ModSounds {
|
||||||
@@ -18,6 +16,7 @@ public class ModSounds {
|
|||||||
public static final SoundEvent HOLY = registerSoundEvent("holy");
|
public static final SoundEvent HOLY = registerSoundEvent("holy");
|
||||||
public static final SoundEvent HOLY_S = registerSoundEvent("holy_s");
|
public static final SoundEvent HOLY_S = registerSoundEvent("holy_s");
|
||||||
public static final SoundEvent BRICKED_UP = registerSoundEvent("bricked_up");
|
public static final SoundEvent BRICKED_UP = registerSoundEvent("bricked_up");
|
||||||
|
public static final SoundEvent SMOKING = registerSoundEvent("smoking");
|
||||||
|
|
||||||
|
|
||||||
// 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)
|
// 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,32 @@
|
|||||||
|
package com.acethewildfire.acesbs.sounds;
|
||||||
|
|
||||||
|
import net.minecraft.client.sound.MovingSoundInstance;
|
||||||
|
import net.minecraft.client.sound.SoundInstance;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.sound.SoundCategory;
|
||||||
|
import net.minecraft.sound.SoundEvent;
|
||||||
|
|
||||||
|
public class PlayerAttachedSound extends MovingSoundInstance {
|
||||||
|
|
||||||
|
private final PlayerEntity player;
|
||||||
|
|
||||||
|
public PlayerAttachedSound(PlayerEntity player, SoundEvent sound) {
|
||||||
|
super(sound, SoundCategory.PLAYERS, SoundInstance.createRandom());
|
||||||
|
this.player = player;
|
||||||
|
this.repeat = true;
|
||||||
|
this.repeatDelay = 0;
|
||||||
|
this.volume = 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick() {
|
||||||
|
if (player.isRemoved() || player.isDead()) {
|
||||||
|
setDone();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.x = (float) player.getX();
|
||||||
|
this.y = (float) player.getEyeY();
|
||||||
|
this.z = (float) player.getZ();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.acethewildfire.acesbs.trim;
|
package com.acethewildfire.acesbs.trim;
|
||||||
|
|
||||||
import com.acethewildfire.acesbs.AcesBS;
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.trim.ArmorTrimMaterial;
|
import net.minecraft.item.trim.ArmorTrimMaterial;
|
||||||
import net.minecraft.registry.Registerable;
|
import net.minecraft.registry.Registerable;
|
||||||
@@ -23,7 +23,7 @@ public class ModTrimMaterials {
|
|||||||
Identifier.of(AcesBS.MOD_ID, "prisma_steel"));
|
Identifier.of(AcesBS.MOD_ID, "prisma_steel"));
|
||||||
|
|
||||||
public static void bootstrap (Registerable<ArmorTrimMaterial> registerable){
|
public static void bootstrap (Registerable<ArmorTrimMaterial> registerable){
|
||||||
register(registerable, PRISMA_STEEL, Registries.ITEM.getEntry(ModItems.PRISMA_STEEL),
|
register(registerable, PRISMA_STEEL, Registries.ITEM.getEntry(PrismaSteelItems.PRISMA_STEEL),
|
||||||
Style.EMPTY.withColor(TextColor.parse("#B16491").getOrThrow()), 1.0f);
|
Style.EMPTY.withColor(TextColor.parse("#B16491").getOrThrow()), 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.acethewildfire.acesbs.trim;
|
package com.acethewildfire.acesbs.trim;
|
||||||
|
|
||||||
import com.acethewildfire.acesbs.AcesBS;
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.trim.ArmorTrimPattern;
|
import net.minecraft.item.trim.ArmorTrimPattern;
|
||||||
import net.minecraft.registry.Registerable;
|
import net.minecraft.registry.Registerable;
|
||||||
@@ -17,7 +17,7 @@ public class ModTrimPatterns {
|
|||||||
Identifier.of(AcesBS.MOD_ID, "prisma"));
|
Identifier.of(AcesBS.MOD_ID, "prisma"));
|
||||||
|
|
||||||
public static void bootstrap(Registerable<ArmorTrimPattern> context) {
|
public static void bootstrap(Registerable<ArmorTrimPattern> context) {
|
||||||
register(context, ModItems.PRISMA_SMITHING_TEMPLATE, PRISMA);
|
register(context, PrismaSteelItems.PRISMA_SMITHING_TEMPLATE, PRISMA);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void register(Registerable<ArmorTrimPattern> context, Item item, RegistryKey<ArmorTrimPattern> key) {
|
private static void register(Registerable<ArmorTrimPattern> context, Item item, RegistryKey<ArmorTrimPattern> key) {
|
||||||
|
|||||||
@@ -13,6 +13,15 @@ public class ModModelPredicates {
|
|||||||
ModelPredicateProviderRegistry.register(ModItems.WAND, Identifier.of(AcesBS.MOD_ID, "used"),
|
ModelPredicateProviderRegistry.register(ModItems.WAND, Identifier.of(AcesBS.MOD_ID, "used"),
|
||||||
(stack, world, entity, seed) -> stack.get(ModDataComponentTypes.COORDINATES) != null ? 1f : 0f);
|
(stack, world, entity, seed) -> stack.get(ModDataComponentTypes.COORDINATES) != null ? 1f : 0f);
|
||||||
|
|
||||||
|
ModelPredicateProviderRegistry.register(ModItems.CIGARETTE, Identifier.of(AcesBS.MOD_ID, "smoking"),
|
||||||
|
(stack, world, entity, seed) -> Boolean.TRUE.equals(stack.get(ModDataComponentTypes.SMOKING)) ? 1f : 0f);
|
||||||
|
|
||||||
|
ModelPredicateProviderRegistry.register(ModItems.CIGARETTE_FUNNY, Identifier.of(AcesBS.MOD_ID, "smoking"),
|
||||||
|
(stack, world, entity, seed) -> Boolean.TRUE.equals(stack.get(ModDataComponentTypes.SMOKING)) ? 1f : 0f);
|
||||||
|
|
||||||
|
ModelPredicateProviderRegistry.register(ModItems.CIGARETTE_LEMON, Identifier.of(AcesBS.MOD_ID, "smoking"),
|
||||||
|
(stack, world, entity, seed) -> Boolean.TRUE.equals(stack.get(ModDataComponentTypes.SMOKING)) ? 1f : 0f);
|
||||||
|
|
||||||
registerCustomBow(ModItems.KAUPEN_BOW);
|
registerCustomBow(ModItems.KAUPEN_BOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.acethewildfire.acesbs.util;
|
|||||||
|
|
||||||
import com.acethewildfire.acesbs.AcesBS;
|
import com.acethewildfire.acesbs.AcesBS;
|
||||||
import com.acethewildfire.acesbs.item.ModItems;
|
import com.acethewildfire.acesbs.item.ModItems;
|
||||||
|
import com.acethewildfire.acesbs.item.PrismaSteelItems;
|
||||||
import net.fabricmc.fabric.api.loot.v3.LootTableEvents;
|
import net.fabricmc.fabric.api.loot.v3.LootTableEvents;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.enchantment.Enchantment;
|
import net.minecraft.enchantment.Enchantment;
|
||||||
@@ -27,7 +28,6 @@ import net.minecraft.registry.RegistryKeys;
|
|||||||
import net.minecraft.registry.RegistryWrapper;
|
import net.minecraft.registry.RegistryWrapper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class UpdateRecipies {
|
public class UpdateRecipies {
|
||||||
@@ -96,7 +96,7 @@ public class UpdateRecipies {
|
|||||||
LootPool.Builder extraPool = LootPool.builder()
|
LootPool.Builder extraPool = LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 2))
|
.rolls(UniformLootNumberProvider.create(1, 2))
|
||||||
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
|
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
|
||||||
.conditionally(specialToolCondition(ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL_HAMMER))
|
.conditionally(specialToolCondition(PrismaSteelItems.PRISMA_STEEL_PICKAXE, PrismaSteelItems.PRISMA_STEEL_HAMMER))
|
||||||
.with(ItemEntry.builder(Items.AIR).weight(460))
|
.with(ItemEntry.builder(Items.AIR).weight(460))
|
||||||
.with(ItemEntry.builder(Items.COAL).weight(12))
|
.with(ItemEntry.builder(Items.COAL).weight(12))
|
||||||
.with(ItemEntry.builder(Items.RAW_COPPER).weight(10))
|
.with(ItemEntry.builder(Items.RAW_COPPER).weight(10))
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
"item.minecraft.lingering_potion.effect.lemon": "Lingering Potion of Puckered",
|
"item.minecraft.lingering_potion.effect.lemon": "Lingering Potion of Puckered",
|
||||||
"item.minecraft.tipped_arrow.effect.lemon": "Arrow of Puckered",
|
"item.minecraft.tipped_arrow.effect.lemon": "Arrow of Puckered",
|
||||||
|
|
||||||
|
"item.acesbs.mote_of_order": "Mote of Order",
|
||||||
|
|
||||||
"item.acesbs.prisma_steel": "Prisma Steel",
|
"item.acesbs.prisma_steel": "Prisma Steel",
|
||||||
"item.acesbs.prisma_steel_sword": "Prisma Steel Sword",
|
"item.acesbs.prisma_steel_sword": "Prisma Steel Sword",
|
||||||
"item.acesbs.prisma_steel_pickaxe": "Prisma Steel Pickaxe",
|
"item.acesbs.prisma_steel_pickaxe": "Prisma Steel Pickaxe",
|
||||||
@@ -46,6 +48,9 @@
|
|||||||
|
|
||||||
"item.acesbs.tobacco_seeds": "Tobacco Seeds",
|
"item.acesbs.tobacco_seeds": "Tobacco Seeds",
|
||||||
"item.acesbs.tobacco": "Tobacco",
|
"item.acesbs.tobacco": "Tobacco",
|
||||||
|
"item.acesbs.cigarette": "Cigarette",
|
||||||
|
"item.acesbs.cigarette_lemon": "Cigarette",
|
||||||
|
"item.acesbs.cigarette_funny": "Cigarette",
|
||||||
|
|
||||||
"item.acesbs.fren_spawn_egg": "Fren Spawn Egg",
|
"item.acesbs.fren_spawn_egg": "Fren Spawn Egg",
|
||||||
|
|
||||||
@@ -154,11 +159,15 @@
|
|||||||
"tooltip.acesbs.combustible_lemon1": "§7§oDo you know who I am?§r",
|
"tooltip.acesbs.combustible_lemon1": "§7§oDo you know who I am?§r",
|
||||||
"tooltip.acesbs.combustible_lemon2": "§7§oI’m the man who’s gonna burn your house down!§r",
|
"tooltip.acesbs.combustible_lemon2": "§7§oI’m the man who’s gonna burn your house down!§r",
|
||||||
|
|
||||||
|
"tooltip.acesbs.mote_of_order": "§o§7A delicate mote of unrealized power.§r",
|
||||||
|
"tooltip.acesbs.cigarette_funny": "§o§7I am the danger of second hand smoke§r",
|
||||||
|
|
||||||
"sounds.acesbs.lizard": "Lizard!",
|
"sounds.acesbs.lizard": "Lizard!",
|
||||||
"sounds.acesbs.holy": "Angelic Music",
|
"sounds.acesbs.holy": "Angelic Music",
|
||||||
"sounds.acesbs.fart": "Loud Echoing Fart",
|
"sounds.acesbs.fart": "Loud Echoing Fart",
|
||||||
"sounds.acesbs.grumble": "Stomach Grumbling",
|
"sounds.acesbs.grumble": "Stomach Grumbling",
|
||||||
"sounds.acesbs.crab_rave": "Jukebox plays Crab Rave",
|
"sounds.acesbs.crab_rave": "Jukebox plays Crab Rave",
|
||||||
|
"sounds.acesbs.smoking": "Violent Smoking",
|
||||||
|
|
||||||
"enchantment.acesbs.lightning_strike": "Lightning Strike",
|
"enchantment.acesbs.lightning_strike": "Lightning Strike",
|
||||||
|
|
||||||
@@ -167,6 +176,8 @@
|
|||||||
|
|
||||||
"effect.acesbs.infernal_fire": "Infernal Fire",
|
"effect.acesbs.infernal_fire": "Infernal Fire",
|
||||||
"effect.acesbs.lemon": "Puckered",
|
"effect.acesbs.lemon": "Puckered",
|
||||||
"effect.acesbs.bricked_up": "Bricked Up"
|
"effect.acesbs.bricked_up": "Bricked Up",
|
||||||
|
"effect.acesbs.cigarette": "Cigarette",
|
||||||
|
"effect.acesbs.withdrawal": "Withdrawal",
|
||||||
|
"effect.acesbs.jittery": "Jittery"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/cigarette"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"predicate": {
|
||||||
|
"acesbs:smoking": 1
|
||||||
|
},
|
||||||
|
"model": "acesbs:item/smoking_cigarette"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/cigarette"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"predicate": {
|
||||||
|
"acesbs:smoking": 1
|
||||||
|
},
|
||||||
|
"model": "acesbs:item/smoking_cigarette"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/cigarette"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"predicate": {
|
||||||
|
"acesbs:smoking": 1
|
||||||
|
},
|
||||||
|
"model": "acesbs:item/smoking_cigarette"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.21.11",
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/cigarette"
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [-28, 55, 0],
|
||||||
|
"translation": [-1, 1, -1.75],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [0, -113, 0],
|
||||||
|
"translation": [-1, 2, -0.75],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [-180, 87, 144],
|
||||||
|
"translation": [0.5, -1.5, -11]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [0, 115, 5],
|
||||||
|
"translation": [0, -2.5, -7.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,6 +35,12 @@
|
|||||||
"acesbs:bricked_up"
|
"acesbs:bricked_up"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"smoking": {
|
||||||
|
"subtitle": "sounds.acesbs.smoking",
|
||||||
|
"sounds": [
|
||||||
|
"acesbs:smoking"
|
||||||
|
]
|
||||||
|
},
|
||||||
"crab_rave": {
|
"crab_rave": {
|
||||||
"subtitle": "sounds.acesbs.crab_rave",
|
"subtitle": "sounds.acesbs.crab_rave",
|
||||||
"sounds": [
|
"sounds": [
|
||||||
|
|||||||
|
After Width: | Height: | Size: 245 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 283 B |
|
After Width: | Height: | Size: 437 B |
|
After Width: | Height: | Size: 402 B |
|
After Width: | Height: | Size: 223 B |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"type": "acesbs:entropic_eviscerator",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "acesbs:prisma_steel_block"
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "acesbs:mote_of_order"
|
||||||
|
}
|
||||||
|
}
|
||||||