Cigarettes

This commit is contained in:
Vos
2026-02-01 21:02:58 -06:00
parent 65b56aeab2
commit 55199f533e
41 changed files with 898 additions and 117 deletions
@@ -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§oIm the man whos gonna burn your house down!§r", "tooltip.acesbs.combustible_lemon2": "§7§oIm the man whos 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": [
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

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"
}
}