Tobacco Crop (no fruit)
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"age=0": {
|
||||
"model": "acesbs:block/tobacco_crop_stage0"
|
||||
},
|
||||
"age=1": {
|
||||
"model": "acesbs:block/tobacco_crop_stage1"
|
||||
},
|
||||
"age=2": {
|
||||
"model": "acesbs:block/tobacco_crop_stage2"
|
||||
},
|
||||
"age=3": {
|
||||
"model": "acesbs:block/tobacco_crop_stage3"
|
||||
},
|
||||
"age=4": {
|
||||
"model": "acesbs:block/tobacco_crop_stage4"
|
||||
},
|
||||
"age=5": {
|
||||
"model": "acesbs:block/tobacco_crop_stage5"
|
||||
},
|
||||
"age=6": {
|
||||
"model": "acesbs:block/tobacco_crop_stage6"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage3"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage4"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage5"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/crop",
|
||||
"textures": {
|
||||
"crop": "acesbs:block/tobacco_crop_stage6"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "acesbs:item/tobacco_seeds"
|
||||
}
|
||||
}
|
||||
@@ -4,13 +4,11 @@
|
||||
"translate": "enchantment.acesbs.lightning_strike"
|
||||
},
|
||||
"effects": {
|
||||
"minecraft:post_attack": [
|
||||
"minecraft:projectile_spawned": [
|
||||
{
|
||||
"affected": "victim",
|
||||
"effect": {
|
||||
"type": "acesbs:lighting_strike"
|
||||
},
|
||||
"enchanted": "attacker"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -23,10 +21,9 @@
|
||||
"base": 5,
|
||||
"per_level_above_first": 7
|
||||
},
|
||||
"primary_items": "#minecraft:enchantable/bow",
|
||||
"slots": [
|
||||
"mainhand"
|
||||
],
|
||||
"supported_items": "#minecraft:enchantable/weapon",
|
||||
"supported_items": "#minecraft:enchantable/bow",
|
||||
"weight": 5
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:explosion_decay"
|
||||
}
|
||||
],
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:alternatives",
|
||||
"children": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"conditions": [
|
||||
{
|
||||
"block": "acesbs:tobacco_crop",
|
||||
"condition": "minecraft:block_state_property",
|
||||
"properties": {
|
||||
"age": "6"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "acesbs:lemon"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "acesbs:tobacco_seeds"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
},
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"block": "acesbs:tobacco_crop",
|
||||
"condition": "minecraft:block_state_property",
|
||||
"properties": {
|
||||
"age": "6"
|
||||
}
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"enchantment": "minecraft:fortune",
|
||||
"formula": "minecraft:binomial_with_bonus_count",
|
||||
"function": "minecraft:apply_bonus",
|
||||
"parameters": {
|
||||
"extra": 3,
|
||||
"probability": 0.5714286
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "acesbs:tobacco_seeds"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -15,6 +15,7 @@ import net.fabricmc.api.ModInitializer;
|
||||
|
||||
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
|
||||
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
|
||||
import net.fabricmc.fabric.api.registry.CompostingChanceRegistry;
|
||||
import net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistryBuilder;
|
||||
import net.fabricmc.fabric.api.renderer.v1.Renderer;
|
||||
import net.minecraft.item.Items;
|
||||
@@ -56,5 +57,8 @@ public class AcesBS implements ModInitializer {
|
||||
builder.registerPotionRecipe(Potions.AWKWARD, ModItems.LEMON, ModPotions.LEMON);
|
||||
builder.registerPotionRecipe(Potions.AWKWARD, Items.SAND, ModPotions.BLINDNESS);
|
||||
});
|
||||
|
||||
// CompostingChanceRegistry.INSTANCE.add(ModItems.TOBACCO);
|
||||
CompostingChanceRegistry.INSTANCE.add(ModItems.TOBACCO_SEEDS, 0.5f);
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ Food
|
||||
- Infernal Beef (Mob/Ashes + Cooked Beef)
|
||||
- Hyper Stimulants (Hyper Sugar)
|
||||
- Narcan (Stimulants + Entropic Eviscerator)
|
||||
- Tobacco
|
||||
|
||||
Crop
|
||||
- Tobacco
|
||||
|
||||
@@ -4,9 +4,11 @@ import com.acethewildfire.acesbs.AcesBS;
|
||||
import com.acethewildfire.acesbs.block.custom.EntropyBlock;
|
||||
import com.acethewildfire.acesbs.block.custom.EvilBlock;
|
||||
import com.acethewildfire.acesbs.block.custom.StableEntropyBlock;
|
||||
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
||||
import com.acethewildfire.acesbs.sounds.ModSounds;
|
||||
import net.minecraft.block.*;
|
||||
import net.minecraft.block.enums.NoteBlockInstrument;
|
||||
import net.minecraft.block.piston.PistonBehavior;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -194,6 +196,20 @@ public class ModBlocks {
|
||||
)
|
||||
);
|
||||
|
||||
public static final Block TOBACCO_CROP = registerBlockWithoutItem("tobacco_crop", new TobaccoCrop(
|
||||
AbstractBlock.Settings.create()
|
||||
.mapColor(MapColor.DARK_GREEN)
|
||||
.noCollision()
|
||||
.ticksRandomly()
|
||||
.breakInstantly()
|
||||
.sounds(BlockSoundGroup.CROP)
|
||||
.pistonBehavior(PistonBehavior.DESTROY)
|
||||
));
|
||||
|
||||
private static Block registerBlockWithoutItem(String name, Block block){
|
||||
return Registry.register(Registries.BLOCK, Identifier.of(AcesBS.MOD_ID, name), block);
|
||||
}
|
||||
|
||||
private static Block registerBlock(String name, Block block){
|
||||
registerBlockItem(name, block);
|
||||
return Registry.register(Registries.BLOCK, Identifier.of(AcesBS.MOD_ID, name), block);
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.acethewildfire.acesbs.block.custom;
|
||||
|
||||
import com.acethewildfire.acesbs.item.ModItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.CropBlock;
|
||||
import net.minecraft.item.ItemConvertible;
|
||||
import net.minecraft.state.StateManager;
|
||||
import net.minecraft.state.property.IntProperty;
|
||||
|
||||
public class TobaccoCrop extends CropBlock {
|
||||
|
||||
public static final int MAX_AGE = 6;
|
||||
public static final IntProperty AGE = IntProperty.of("age", 0, 6);
|
||||
|
||||
public TobaccoCrop(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemConvertible getSeedsItem() {
|
||||
return ModItems.TOBACCO_SEEDS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IntProperty getAgeProperty() {
|
||||
return AGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxAge() {
|
||||
return MAX_AGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||
builder.add(AGE);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.acethewildfire.acesbs.datagen;
|
||||
|
||||
import com.acethewildfire.acesbs.AcesBS;
|
||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
||||
import com.acethewildfire.acesbs.item.ModItems;
|
||||
import com.acethewildfire.acesbs.util.ModTags;
|
||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||
@@ -17,6 +18,7 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.loot.LootPool;
|
||||
import net.minecraft.loot.LootTable;
|
||||
import net.minecraft.loot.condition.BlockStatePropertyLootCondition;
|
||||
import net.minecraft.loot.condition.InvertedLootCondition;
|
||||
import net.minecraft.loot.condition.LootCondition;
|
||||
import net.minecraft.loot.condition.MatchToolLootCondition;
|
||||
@@ -28,6 +30,7 @@ import net.minecraft.loot.function.SetCountLootFunction;
|
||||
import net.minecraft.loot.provider.number.ConstantLootNumberProvider;
|
||||
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
|
||||
import net.minecraft.predicate.NumberRange;
|
||||
import net.minecraft.predicate.StatePredicate;
|
||||
import net.minecraft.predicate.item.EnchantmentPredicate;
|
||||
import net.minecraft.predicate.item.EnchantmentsPredicate;
|
||||
import net.minecraft.predicate.item.ItemPredicate;
|
||||
@@ -67,6 +70,10 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider {
|
||||
addDrop(ModBlocks.LEMONWOOD_TRAPDOOR);
|
||||
|
||||
addDrop(ModBlocks.ENTROPY_ORE, prismaSteelOreDrops(ModBlocks.ENTROPY_ORE, ModItems.RAW_ENTROPY, 1, 3));
|
||||
|
||||
BlockStatePropertyLootCondition.Builder builder2 = BlockStatePropertyLootCondition.builder(ModBlocks.TOBACCO_CROP)
|
||||
.properties(StatePredicate.Builder.create().exactMatch(TobaccoCrop.AGE, TobaccoCrop.MAX_AGE));
|
||||
this.addDrop(ModBlocks.TOBACCO_CROP, this.cropDrops(ModBlocks.TOBACCO_CROP, ModItems.LEMON, ModItems.TOBACCO_SEEDS, builder2));
|
||||
}
|
||||
|
||||
public LootTable.Builder multipleOreDrops(Block drop, Item item, float minDrops, float maxDrops) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.acethewildfire.acesbs.datagen;
|
||||
|
||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||
import com.acethewildfire.acesbs.block.custom.EvilBlock;
|
||||
import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
|
||||
import com.acethewildfire.acesbs.item.ModItems;
|
||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
|
||||
@@ -47,6 +48,7 @@ public class ModModelProvider extends FabricModelProvider {
|
||||
blockStateModelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(ModBlocks.EVIL_BLOCK)
|
||||
.coordinate(BlockStateModelGenerator.createBooleanModelMap(EvilBlock.CLICKED, lampOnIdentifier, lampOffIdentifier)));
|
||||
|
||||
blockStateModelGenerator.registerCrop(ModBlocks.TOBACCO_CROP, TobaccoCrop.AGE, 0,1,2,3,4,5,6);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,6 +27,7 @@ public class ModItemGroups {
|
||||
entries.add(ModItems.PRISMA_STEEL);
|
||||
entries.add(ModItems.PRISMA_SMITHING_TEMPLATE);
|
||||
entries.add(ModItems.CRAB_RAVE_MUSIC_DISC);
|
||||
entries.add(ModItems.TOBACCO_SEEDS);
|
||||
})
|
||||
.build());
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.acethewildfire.acesbs.item;
|
||||
|
||||
import com.acethewildfire.acesbs.AcesBS;
|
||||
import com.acethewildfire.acesbs.block.ModBlocks;
|
||||
import com.acethewildfire.acesbs.item.custom.HammerItem;
|
||||
import com.acethewildfire.acesbs.item.custom.ModArmorItem;
|
||||
import com.acethewildfire.acesbs.item.custom.OracleLemon;
|
||||
@@ -144,7 +145,7 @@ public class ModItems {
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
public static final Item TOBACCO_SEEDS = registerItem("tobacco_seeds", new AliasedBlockItem(ModBlocks.TOBACCO_CROP, new Item.Settings()));
|
||||
|
||||
private static Item registerItem(String name, Item item){
|
||||
return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item);
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
"item.acesbs.crab_rave_music_disc": "Crab Rave Music Disc",
|
||||
"item.acesbs.crab_rave_music_disc.desc": "Noisestorm - Crab Rave [Monstercat Release]",
|
||||
|
||||
"item.acesbs.tobacco_seeds": "Tobacco Seeds",
|
||||
|
||||
|
||||
"painting.acesbs.herald.title": "Herald's Banner",
|
||||
"painting.acesbs.herald.author": "AceTheWildfire",
|
||||
@@ -74,6 +76,8 @@
|
||||
|
||||
"block.acesbs.evil_block": "Evil Block",
|
||||
|
||||
"block.acesbs.tobacco_crop": "Tobacco Crop",
|
||||
|
||||
"itemgroup.acesbs.items": "Ace's BS Items",
|
||||
"itemgroup.acesbs.blocks": "Ace's BS Blocks",
|
||||
"itemgroup.acesbs.combat": "Ace's BS Combat",
|
||||
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |