diff --git a/resources/assets.py b/resources/assets.py index e2a61e75..4375b5a4 100644 --- a/resources/assets.py +++ b/resources/assets.py @@ -130,23 +130,15 @@ def generate(rm: ResourceManager): 'axis=z': {'model': 'firmalife:block/grape_trellis_string_center'} }).with_lang(lang('grape string')).with_tag('tfc:mineable_with_sharp_tool').with_block_loot('tfc:jute_fiber') - rm.blockstate('grape_string_plant_red', variants={ - 'axis=x,stage=0': {'model': 'firmalife:block/grape_0', 'y': 90}, - 'axis=z,stage=0': {'model': 'firmalife:block/grape_0'}, - 'axis=x,stage=1': {'model': 'firmalife:block/grape_1', 'y': 90}, - 'axis=z,stage=1': {'model': 'firmalife:block/grape_1'}, - 'axis=x,stage=2': {'model': 'firmalife:block/grape_2', 'y': 90}, - 'axis=z,stage=2': {'model': 'firmalife:block/grape_2'}, - }).with_lang(lang('red grape plant')).with_tag('tfc:mineable_with_sharp_tool').with_block_loot('tfc:jute_fiber') + rm.blockstate('grape_string_plant_red', variants=dict( + ('axis=%s,lifecycle=%s,stage=%s' % (a, l, s), {'model': 'firmalife:block/%s_%s' % (m, s), 'y': y if y != 0 else None}) + for a, y in (('x', 90), ('z', 0)) for s in range(0, 3) for l, m in (('dormant', 'grape_dead'), ('healthy', 'grape'), ('fruiting', 'grape'), ('flowering', 'grape')) + )).with_lang(lang('red grape plant')).with_tag('tfc:mineable_with_sharp_tool').with_block_loot('tfc:jute_fiber') - rm.blockstate('grape_string_plant_white', variants={ - 'axis=x,stage=0': {'model': 'firmalife:block/grape_0', 'y': 90}, - 'axis=z,stage=0': {'model': 'firmalife:block/grape_0'}, - 'axis=x,stage=1': {'model': 'firmalife:block/grape_1', 'y': 90}, - 'axis=z,stage=1': {'model': 'firmalife:block/grape_1'}, - 'axis=x,stage=2': {'model': 'firmalife:block/grape_2', 'y': 90}, - 'axis=z,stage=2': {'model': 'firmalife:block/grape_2'}, - }).with_lang(lang('white grape plant')).with_tag('tfc:mineable_with_sharp_tool').with_block_loot('tfc:jute_fiber') + rm.blockstate('grape_string_plant_white', variants=dict( + ('axis=%s,lifecycle=%s,stage=%s' % (a, l, s), {'model': 'firmalife:block/%s_%s' % (m, s), 'y': y if y != 0 else None}) + for a, y in (('x', 90), ('z', 0)) for s in range(0, 3) for l, m in (('dormant', 'grape_dead'), ('healthy', 'grape'), ('fruiting', 'grape'), ('flowering', 'grape')) + )).with_lang(lang('white grape plant')).with_tag('tfc:mineable_with_sharp_tool').with_block_loot('tfc:jute_fiber') rm.blockstate('grape_string_red', variants={ 'axis=x,lifecycle=dormant': {'model': 'firmalife:block/grape_top_dead', 'y': 90}, @@ -214,12 +206,16 @@ def generate(rm: ResourceManager): ).with_lang(lang('grape_trellis_post')).with_tag('minecraft:mineable/axe').with_block_loot('firmalife:grape_trellis_post') for color in ('red', 'white'): - rm.item_model('seeds/%s_grape' % color, 'firmalife:item/seeds/%s_grape' % color).with_lang(lang('%s grape seeds', color)).with_tag('#tfc:seeds') + rm.item_model('seeds/%s_grape' % color, 'firmalife:item/seeds/%s_grape' % color).with_lang(lang('%s grape seeds', color)).with_tag('tfc:seeds') rm.item_model('beehive_frame_no_queen', 'firmalife:item/beehive_frame') rm.item_model('beehive_frame_queen', 'firmalife:item/beehive_frame_queen') item_model_property(rm, 'beehive_frame', [{'predicate': {'firmalife:queen': 1}, 'model': 'firmalife:item/beehive_frame_queen'}], {'parent': 'firmalife:item/beehive_frame_no_queen'}).with_lang(lang('beehive frame')) + for color in ('hematitic', 'olivine', 'volcanic'): + rm.block_model(f'{color}_wine_bottle', {'bottle_cork': 'firmalife:block/wine/bottle_cork', 'bottle': f'firmalife:block/wine/{color}_bottle', 'bottle_neck': f'firmalife:block/wine/{color}_bottle_neck'}, 'firmalife:block/wine_bottle') + rm.block_model(f'empty_{color}_wine_bottle', {'bottle_cork': 'tfc:block/empty'}, f'firmalife:block/{color}_wine_bottle') + rm.blockstate('climate_station', variants={ 'stasis=true': {'model': 'firmalife:block/climate_station_valid'}, 'stasis=false': {'model': 'firmalife:block/climate_station_invalid'} @@ -419,6 +415,12 @@ def generate(rm: ResourceManager): )).with_lang(lang('%s keg' % wood)).with_tag('minecraft:mineable/axe').with_block_loot({'name': 'firmalife:wood/big_barrel/%s' % wood, 'conditions': [loot_tables.block_state_property('firmalife:wood/big_barrel/%s[barrel_part=0]' % wood)]}) block.with_tag('firmalife:big_barrels').with_item_tag('firmalife:big_barrels') + block = rm.blockstate('wood/wine_shelf/%s' % wood, variants=four_rotations('firmalife:block/wood/wine_shelf/%s_dynamic' % wood, (90, None, 180, 270))) + block.with_block_model({'0': 'tfc:block/wood/planks/%s' % wood, '2': 'tfc:block/wood/sheet/%s' % wood, '3': 'tfc:block/wood/stripped_log/%s' % wood}, 'firmalife:block/wine_shelf') + block.with_lang(lang('%s wine shelf', wood)).with_tag('firmalife:wine_shelves').with_item_tag('firmalife:wine_shelves').with_block_loot('firmalife:wood/wine_shelf/%s' % wood).with_tag('minecraft:mineable/axe') + rm.item_model('wood/wine_shelf/%s' % wood, parent='firmalife:block/wood/wine_shelf/%s' % wood, no_textures=True) + rm.custom_block_model('firmalife:wood/wine_shelf/%s_dynamic' % wood, 'firmalife:wine_shelf', {'base': {'parent': 'firmalife:block/wood/wine_shelf/%s' % wood}}) + for fruit in FRUITS.keys(): for prefix in ('', 'growing_'): block = rm.blockstate_multipart('plant/' + fruit + '_' + prefix + 'branch', diff --git a/resources/constants.py b/resources/constants.py index 8727ae84..42412186 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -11,7 +11,7 @@ class Wood(NamedTuple): SIMPLE_ITEMS = ('fruit_leaf', 'cinnamon_bark', 'beeswax', 'pineapple_fiber', 'pineapple_leather', 'pineapple_yarn', 'raw_honey', 'rennet', 'watering_can', 'treated_lumber', 'cheesecloth', 'spoon', 'pie_pan', 'seed_ball', 'rustic_finish', 'stone_finish', 'tile_finish', 'oven_insulation', 'ice_shavings', 'beekeeper_helmet', 'beekeeper_chestplate', 'beekeeper_leggings', 'beekeeper_boots', 'reinforced_glass', 'pottery_sherd', - 'hematitic_wine_bottle', 'olivine_wine_bottle', 'volcanic_wine_bottle') + 'hematitic_wine_bottle', 'olivine_wine_bottle', 'volcanic_wine_bottle', 'empty_hematitic_wine_bottle', 'empty_olivine_wine_bottle', 'empty_volcanic_wine_bottle', 'cork', 'bottle_label') SIMPLE_FOODS = ('frothy_coconut', 'white_chocolate_blend', 'dark_chocolate_blend', 'milk_chocolate_blend', 'tofu', 'soy_mixture', 'yak_curd', 'goat_curd', 'milk_curd', 'cheddar', 'chevre', 'rajya_metok', 'gouda', 'feta', 'shosha', 'butter', 'pie_dough', 'filled_pie', 'cooked_pie', 'pizza_dough', 'raw_pizza', 'cooked_pizza', 'shredded_cheese', 'pickled_egg', 'pumpkin_pie_dough', 'raw_pumpkin_pie', 'cooked_pumpkin_pie', 'cocoa_beans', 'roasted_cocoa_beans', 'cocoa_butter', 'cocoa_powder', 'toast', 'dark_chocolate', 'milk_chocolate', 'white_chocolate', 'garlic_bread', 'cured_maize', 'nixtamal', 'masa', 'masa_flour', 'corn_tortilla', 'taco_shell', 'burrito', 'taco', 'salsa', @@ -249,6 +249,11 @@ class Wood(NamedTuple): 'firmalife.beehive.breed_chance_100': 'Daily New Bee Chance: Guaranteed', 'firmalife.beehive.honey_chance': 'Daily Honey Chance: 1 / %s', 'firmalife.beehive.honey_chance_100': 'Daily Honey Chance: Guaranteed', + 'firmalife.wine.age_time': 'Aging for: %s', + 'firmalife.wine.age_time_opened': 'Aged for: %s', + 'firmalife.wine.sealed': 'Sealed', + 'firmalife.wine.unsealed': 'Unsealed', + 'firmalife.wine.how_to_open': 'Right click with a knife to pop the cork.', 'greenhouse.firmalife.treated_wood': 'Treated Wood', 'greenhouse.firmalife.copper': 'Copper', 'greenhouse.firmalife.iron': 'Iron', diff --git a/resources/data.py b/resources/data.py index 90a76ef9..ab6d52b2 100644 --- a/resources/data.py +++ b/resources/data.py @@ -181,6 +181,8 @@ def generate(rm: ResourceManager): item_size(rm, 'dynamic_foods', '#firmalife:foods/dynamic', Size.very_small, Weight.very_heavy) item_size(rm, 'peel', 'firmalife:peel', Size.very_large, Weight.heavy) item_size(rm, 'big_barrels', '#firmalife:big_barrels', Size.very_large, Weight.very_heavy) + item_size(rm, 'wine', '#firmalife:filled_wine_bottles', Size.very_large, Weight.very_heavy) + item_size(rm, 'empty_wine', '#firmalife:empty_wine_bottles', Size.normal, Weight.medium) item_heat(rm, 'heatable_foods', '#firmalife:foods/heatable', 1) @@ -188,6 +190,7 @@ def generate(rm: ResourceManager): climate_range(rm, 'plant/%s_tree' % fruit, hydration=(hydration_from_rainfall(data.min_rain), 100, 0), temperature=(data.min_temp - 7, data.max_temp + 7, 0)) for berry, data in STILL_BUSHES.items(): climate_range(rm, 'plant/%s_bush' % berry, hydration=(hydration_from_rainfall(data[0]), 100, 0), temperature=(data[2], data[3], 0)) + climate_range(rm, 'plant/grapes', hydration=(0, 100, 0), temperature=(0, 50, 0)) damage_type(rm, 'oven', exhaustion=0.1, effects='burning') damage_type(rm, 'swarm') diff --git a/resources/tags.py b/resources/tags.py index 58eae2c3..8494ef53 100644 --- a/resources/tags.py +++ b/resources/tags.py @@ -37,6 +37,9 @@ def generate(rm: ResourceManager): rm.item_tag('foods/raw_fish', *['tfc:food/%s' % fish for fish in TFC_FISH_ITEMS]) rm.item_tag('foods/cooked_fish', *['tfc:food/cooked_%s' % fish for fish in TFC_FISH_ITEMS]) rm.item_tag('foods/egg_noodle_flour', *['tfc:food/%s_flour' % g for g in TFC_GRAINS]) + rm.item_tag('empty_wine_bottles', 'empty_hematitic_wine_bottle', 'empty_olivine_wine_bottle', 'empty_volcanic_wine_bottle') + rm.item_tag('filled_wine_bottles', 'hematitic_wine_bottle', 'olivine_wine_bottle', 'volcanic_wine_bottle') + rm.item_tag('wine_bottles', '#firmalife:empty_wine_bottles', '#firmalife:filled_wine_bottles') block_and_item_tag(rm, 'tfc:wild_fruits', 'firmalife:plant/pineapple_bush', 'firmalife:plant/nightshade_bush', 'firmalife:plant/fig_sapling', 'firmalife:plant/cocoa_sapling') diff --git a/resources/validate_assets.py b/resources/validate_assets.py index eb4c9630..28284f69 100644 --- a/resources/validate_assets.py +++ b/resources/validate_assets.py @@ -3,7 +3,7 @@ from mcresources import utils assets_path = '../src/main/resources/assets/' -texture_forgiveness_paths = ('crop', 'spice', 'fruitstuff', 'food', 'mallet', 'dried', 'pineapple', 'coconut', 'metal/full', 'cinnamon', 'block/white_wool', 'squash', 'cocoa') +texture_forgiveness_paths = ('crop', 'spice', 'fruitstuff', 'food', 'mallet', 'dried', 'pineapple', 'coconut', 'metal/full', 'cinnamon', 'block/white_wool', 'squash', 'cocoa', 'egg', 'metal/smooth') def main(): model_locations = glob(assets_path + 'firmalife/models/**/*.json', recursive=True) @@ -63,7 +63,7 @@ def validate_models_used(model_locations, known_models): tested += 1 if f not in fixed_km: forgiven = False - for check in ('jar_jug', 'spoon', 'block/jar'): + for check in ('jar_jug', 'spoon', 'block/jar', 'jarbnet', 'wine_bottle', 'compost_tumbler', 'planter'): if check in f: forgiven = True if not forgiven: @@ -107,7 +107,7 @@ def validate_textures(model_locations): tested += 1 path = assets_path + 'firmalife/textures/%s.png' % res.path if len(glob(path)) == 0: - print('Using missing texture, unable to load %s : java.io.FileNotFoundException: %s' % (f, path)) + print('In model %s cannot find texture %s' % (f, path)) errors += 1 else: existing_textures.append(path) diff --git a/src/main/java/com/eerussianguy/firmalife/client/FLClientEvents.java b/src/main/java/com/eerussianguy/firmalife/client/FLClientEvents.java index 2af5ca4d..3092f67d 100644 --- a/src/main/java/com/eerussianguy/firmalife/client/FLClientEvents.java +++ b/src/main/java/com/eerussianguy/firmalife/client/FLClientEvents.java @@ -17,12 +17,14 @@ import com.eerussianguy.firmalife.client.model.DynamicBlockModel; import com.eerussianguy.firmalife.client.model.QuadPlanterBlockModel; import com.eerussianguy.firmalife.client.model.TrellisPlanterBlockModel; +import com.eerussianguy.firmalife.client.model.WineShelfBlockModel; import com.eerussianguy.firmalife.client.screen.BigBarrelScreen; import com.eerussianguy.firmalife.client.screen.StovetopGrillScreen; import com.eerussianguy.firmalife.client.screen.StovetopPotScreen; import com.eerussianguy.firmalife.common.FLCreativeTabs; import com.eerussianguy.firmalife.common.capabilities.bee.BeeCapability; import com.eerussianguy.firmalife.common.capabilities.bee.IBee; +import com.eerussianguy.firmalife.common.items.WineBottleItem; import com.eerussianguy.firmalife.common.misc.SprinklerParticle; import com.eerussianguy.firmalife.common.util.FLFruit; import net.minecraft.ChatFormatting; @@ -110,6 +112,7 @@ public static void clientSetup(FMLClientSetupEvent event) FLBlocks.FOOD_SHELVES.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); FLBlocks.HANGERS.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); FLBlocks.JARBNETS.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); + FLBlocks.WINE_SHELVES.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); FLBlocks.CURED_OVEN_BOTTOM.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); FLBlocks.CURED_OVEN_TOP.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); FLBlocks.CURED_OVEN_HOPPER.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout)); @@ -176,6 +179,14 @@ public static void registerModels(ModelEvent.RegisterAdditional event) event.register(FLHelpers.identifier("block/jar/rotten_compost")); event.register(FLHelpers.identifier("block/jar/guano")); event.register(FLHelpers.identifier("block/jar/honey")); + + for (Item item : ForgeRegistries.ITEMS.getValues()) + { + if (item instanceof WineBottleItem wine) + { + event.register(wine.getModelLocation()); + } + } } public static void registerLoaders(ModelEvent.RegisterGeometryLoaders event) @@ -190,6 +201,7 @@ public static void registerLoaders(ModelEvent.RegisterGeometryLoaders event) event.register("jarring_station", new DynamicBlockModel.Loader(JarringStationBlockModel::new)); event.register("food_shelf", new DynamicBlockModel.Loader(FoodShelfBlockModel::new)); event.register("hanger", new DynamicBlockModel.Loader(HangerBlockModel::new)); + event.register("wine_shelf", new DynamicBlockModel.Loader(WineShelfBlockModel::new)); } private static void registerDryProperty(Supplier item) diff --git a/src/main/java/com/eerussianguy/firmalife/client/FLClientForgeEvents.java b/src/main/java/com/eerussianguy/firmalife/client/FLClientForgeEvents.java index 5faaa4b2..e884fb6f 100644 --- a/src/main/java/com/eerussianguy/firmalife/client/FLClientForgeEvents.java +++ b/src/main/java/com/eerussianguy/firmalife/client/FLClientForgeEvents.java @@ -3,6 +3,7 @@ import java.util.List; import com.eerussianguy.firmalife.common.FLTags; +import com.eerussianguy.firmalife.common.capabilities.wine.WineCapability; import com.eerussianguy.firmalife.common.util.Plantable; import com.google.common.base.Stopwatch; import net.minecraft.network.chat.Component; @@ -45,6 +46,7 @@ private static void onTooltip(ItemTooltipEvent event) if (!stack.isEmpty()) { stack.getCapability(BeeCapability.CAPABILITY).ifPresent(cap -> cap.addTooltipInfo(text)); + stack.getCapability(WineCapability.CAPABILITY).ifPresent(cap -> cap.addTooltipInfo(text)); final Plantable plantable = Plantable.get(stack); if (plantable != null) { diff --git a/src/main/java/com/eerussianguy/firmalife/client/model/WineShelfBlockModel.java b/src/main/java/com/eerussianguy/firmalife/client/model/WineShelfBlockModel.java new file mode 100644 index 00000000..b08a585e --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/client/model/WineShelfBlockModel.java @@ -0,0 +1,79 @@ +package com.eerussianguy.firmalife.client.model; + +import com.eerussianguy.firmalife.common.blockentities.FLBlockEntities; +import com.eerussianguy.firmalife.common.blockentities.WineShelfBlockEntity; +import com.eerussianguy.firmalife.common.blocks.WineShelfBlock; +import com.eerussianguy.firmalife.common.items.WineBottleItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Axis; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.block.ModelBlockRenderer; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.items.IItemHandler; + +import net.dries007.tfc.common.capabilities.Capabilities; +import net.dries007.tfc.util.Helpers; + +public class WineShelfBlockModel extends SimpleDynamicBlockModel +{ + public WineShelfBlockModel(boolean isAmbientOcclusion, boolean isGui3d, boolean isSideLit, ItemOverrides overrides, BakedModel baseModel) + { + super(isAmbientOcclusion, isGui3d, isSideLit, overrides, baseModel); + } + + @Override + public void render(WineShelfBlockEntity shelf, PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay) + { + if (!(shelf.getBlockState().getBlock() instanceof WineShelfBlock && shelf.getLevel() != null)) + return; + + final Minecraft mc = Minecraft.getInstance(); + final ModelBlockRenderer renderer = mc.getBlockRenderer().getModelRenderer(); + final Direction facing = shelf.getBlockState().getValue(WineShelfBlock.FACING); + final int angle = switch (facing) + { + case SOUTH -> 180; + case EAST -> 270; + case WEST, DOWN, UP -> 90; + case NORTH -> 0; + }; + + final IItemHandler inv = Helpers.getCapability(shelf, Capabilities.ITEM); + if (inv == null) + return; + for (int i = 0; i < 4; i++) + { + final ItemStack stack = inv.getStackInSlot(i); + if (stack.getItem() instanceof WineBottleItem wine) + { + poseStack.pushPose(); + poseStack.translate(0.5f, 0.5f, 0.5f); + poseStack.mulPose(Axis.XP.rotationDegrees(-90f)); + poseStack.mulPose(Axis.ZP.rotationDegrees(angle)); + poseStack.translate(-0.5f, -0.5f, -0.5f); + + poseStack.translate(i < 2 ? 0.25f : -0.25f, 1f / 16f, i % 2 == 0 ? 0.25f : -0.25f); + + final BakedModel baked = mc.getModelManager().getModel(wine.getModelLocation()); + renderer.tesselateWithAO(shelf.getLevel(), baked, shelf.getBlockState(), shelf.getBlockPos(), poseStack, buffer, false, RandomSource.create(), 4L, packedOverlay, ModelData.EMPTY, RenderType.cutout()); + + poseStack.popPose(); + } + } + + } + + @Override + public BlockEntityType type() + { + return FLBlockEntities.WINE_SHELF.get(); + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/FLCreativeTabs.java b/src/main/java/com/eerussianguy/firmalife/common/FLCreativeTabs.java index 31823aa2..eaade5da 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/FLCreativeTabs.java +++ b/src/main/java/com/eerussianguy/firmalife/common/FLCreativeTabs.java @@ -70,6 +70,10 @@ public static void fillFirmalifeTab(CreativeModeTab.ItemDisplayParameters parame accept(out, FLItems.OLIVINE_WINE_BOTTLE); accept(out, FLItems.HEMATITIC_WINE_BOTTLE); accept(out, FLItems.VOLCANIC_WINE_BOTTLE); + accept(out, FLItems.EMPTY_OLIVINE_WINE_BOTTLE); + accept(out, FLItems.EMPTY_HEMATITIC_WINE_BOTTLE); + accept(out, FLItems.EMPTY_VOLCANIC_WINE_BOTTLE); + accept(out, FLItems.CORK); accept(out, FLItems.RED_GRAPE_SEEDS); accept(out, FLItems.WHITE_GRAPE_SEEDS); @@ -120,6 +124,7 @@ else if (type == OvenType.TILE) accept(out, FLBlocks.SEALED_BRICKS); accept(out, FLBlocks.CHISELED_SEALED_BRICKS); accept(out, FLBlocks.POLISHED_SEALED_BRICKS); + accept(out, FLBlocks.DARK_LADDER); accept(out, FLBlocks.SEALED_DOOR); accept(out, FLBlocks.SEALED_WALL); accept(out, FLBlocks.SEALED_TRAPDOOR); @@ -132,6 +137,7 @@ else if (type == OvenType.TILE) accept(out, FLBlocks.HANGERS, wood); accept(out, FLBlocks.JARBNETS, wood); accept(out, FLBlocks.BIG_BARRELS, wood); + accept(out, FLBlocks.WINE_SHELVES, wood); } for (Carving carving : Carving.values()) diff --git a/src/main/java/com/eerussianguy/firmalife/common/FLTags.java b/src/main/java/com/eerussianguy/firmalife/common/FLTags.java index e83a2715..60662b78 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/FLTags.java +++ b/src/main/java/com/eerussianguy/firmalife/common/FLTags.java @@ -46,6 +46,7 @@ public static class Items public static final TagKey CAN_BE_HUNG = create("can_be_hung"); public static final TagKey USABLE_IN_STOVETOP_SOUP = create("usable_in_stovetop_soup"); public static final TagKey BEEKEEPER_ARMOR = create("beekeeper_armor"); + public static final TagKey WINE_BOTTLES = create("wine_bottles"); private static TagKey create(String id) { diff --git a/src/main/java/com/eerussianguy/firmalife/common/blockentities/FLBlockEntities.java b/src/main/java/com/eerussianguy/firmalife/common/blockentities/FLBlockEntities.java index 88369291..5b9faf9f 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/blockentities/FLBlockEntities.java +++ b/src/main/java/com/eerussianguy/firmalife/common/blockentities/FLBlockEntities.java @@ -41,12 +41,14 @@ public class FLBlockEntities public static final RegistryObject> HANGER = register("hanger", HangerBlockEntity::new, Stream.of(FLBlocks.HANGERS.values()).>flatMap(Helpers::flatten)); public static final RegistryObject> JARBNET = register("jarbnet", JarbnetBlockEntity::new, Stream.of(FLBlocks.JARBNETS.values()).>flatMap(Helpers::flatten)); public static final RegistryObject> BIG_BARREL = register("big_barrel", BigBarrelBlockEntity::new, Stream.of(FLBlocks.BIG_BARRELS.values()).>flatMap(Helpers::flatten)); + public static final RegistryObject> WINE_SHELF = register("wine_shelf", WineShelfBlockEntity::new, Stream.of(FLBlocks.WINE_SHELVES.values()).>flatMap(Helpers::flatten)); public static final RegistryObject> VAT = register("vat", VatBlockEntity::new, FLBlocks.VAT); public static final RegistryObject> ASHTRAY = register("ashtray", AshTrayBlockEntity::new, FLBlocks.ASHTRAY); public static final RegistryObject> STOVETOP_GRILL = register("stovetop_grill", StovetopGrillBlockEntity::new, FLBlocks.STOVETOP_GRILL); public static final RegistryObject> STOVETOP_POT = register("stovetop_pot", StovetopPotBlockEntity::new, FLBlocks.STOVETOP_POT); public static final RegistryObject> JARRING_STATION = register("jarring_station", JarringStationBlockEntity::new, FLBlocks.JARRING_STATION); public static final RegistryObject> PLATE = register("plate", PlateBlockEntity::new, FLBlocks.PLATE); + public static final RegistryObject> GRAPE_PLANT = register("grape_plant", GrapePlantBlockEntity::new, Stream.of(FLBlocks.GRAPE_STRING_PLANT_RED, FLBlocks.GRAPE_STRING_PLANT_WHITE)); public static final RegistryObject> LARGE_PLANTER = register("large_planter", LargePlanterBlockEntity::new, FLBlocks.LARGE_PLANTER); public static final RegistryObject> BONSAI_PLANTER = register("bonsai_planter", BonsaiPlanterBlockEntity::new, FLBlocks.BONSAI_PLANTER); diff --git a/src/main/java/com/eerussianguy/firmalife/common/blockentities/GrapePlantBlockEntity.java b/src/main/java/com/eerussianguy/firmalife/common/blockentities/GrapePlantBlockEntity.java new file mode 100644 index 00000000..184f920c --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/blockentities/GrapePlantBlockEntity.java @@ -0,0 +1,175 @@ +package com.eerussianguy.firmalife.common.blockentities; + +import com.eerussianguy.firmalife.common.blocks.plant.GrapeGroundPlantOnStringBlock; +import com.eerussianguy.firmalife.common.blocks.plant.IGrape; +import com.eerussianguy.firmalife.common.util.FLClimateRanges; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +import net.dries007.tfc.common.blockentities.TFCBlockEntity; +import net.dries007.tfc.common.blocks.plant.fruit.Lifecycle; +import net.dries007.tfc.util.calendar.Calendars; +import net.dries007.tfc.util.calendar.ICalendar; +import net.dries007.tfc.util.calendar.ICalendarTickable; +import net.dries007.tfc.util.climate.Climate; +import net.dries007.tfc.util.climate.ClimateRange; + +public class GrapePlantBlockEntity extends TFCBlockEntity implements ICalendarTickable +{ + public static void serverTick(Level level, BlockPos pos, BlockState state, GrapePlantBlockEntity plant) + { + plant.checkForCalendarUpdate(); + } + + public static final int UPDATE_INTERVAL = ICalendar.TICKS_IN_DAY; + + private long lastUpdateTick; // The last tick this crop was ticked via the block entity's tick() method. A delta of > 1 is used to detect time skips + private long lastGrowthTick; // The last tick the crop block was ticked via ICropBlock#growthTick() + private float growth = 0f; + + public GrapePlantBlockEntity(BlockPos pos, BlockState state) + { + super(FLBlockEntities.GRAPE_PLANT.get(), pos, state); + lastGrowthTick = Calendars.SERVER.getTicks(); + lastUpdateTick = Integer.MIN_VALUE; + } + + @Override + public void onCalendarUpdate(long ticks) + { + assert level != null; + tryUpdate(); + } + + public void tryUpdate() + { + final long now = Calendars.SERVER.getTicks(); + //handle update interval + if (now > (lastGrowthTick + UPDATE_INTERVAL)) + { + while (lastGrowthTick < now) + { + updateTick(); + lastGrowthTick += UPDATE_INTERVAL; + } + markForSync(); + } + } + + public void updateTick() + { + assert level != null; + + if (FLClimateRanges.GRAPES.get().checkTemperature(Climate.getTemperature(level, worldPosition), false) == ClimateRange.Result.VALID) + { + growth += 0.125f + (level.random.nextFloat() * 0.05f); + if (growth >= 1f) + { + advanceAt(worldPosition); + advanceAt(worldPosition.above()); + growth = 0f; + markForSync(); + } + lifecycleAt(worldPosition, Lifecycle.HEALTHY); + lifecycleAt(worldPosition.above(), Lifecycle.HEALTHY); + } + else + { + + lifecycleAt(worldPosition, Lifecycle.DORMANT); + lifecycleAt(worldPosition.above(), Lifecycle.DORMANT); + } + } + + private void advanceAt(BlockPos pos) + { + assert level != null; + final BlockState state = level.getBlockState(pos); + if (state.getBlock() instanceof IGrape grape) + { + grape.advance(level, pos, state); + } + } + + private void lifecycleAt(BlockPos pos, Lifecycle lifecycle) + { + assert level != null; + final BlockState state = level.getBlockState(pos); + if (state.getBlock() instanceof IGrape grape) + { + grape.advanceLifecycle(level, pos, state, lifecycle); + } + } + + public BlockPos getBrainBlock() + { + assert level != null; + BlockState state = level.getBlockState(worldPosition); + final Direction dir = state.getValue(GrapeGroundPlantOnStringBlock.AXIS) == Direction.Axis.X ? Direction.EAST : Direction.SOUTH; + final BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos(); + cursor.set(worldPosition); + while (state.getBlock() instanceof GrapeGroundPlantOnStringBlock) + { + cursor.move(dir, 2); + state = level.getBlockState(cursor); + } + cursor.move(dir, -2); + return cursor.immutable(); + } + + public boolean isBrain() + { + return getBrainBlock().equals(worldPosition); + } + + public float getGrowth() + { + return growth; + } + + public long getLastGrowthTick() + { + return lastGrowthTick; + } + + public void setLastGrowthTick(long lastGrowthTick) + { + this.lastGrowthTick = lastGrowthTick; + markForSync(); + } + + @Override + @Deprecated + public long getLastCalendarUpdateTick() + { + return lastUpdateTick; + } + + @Override + @Deprecated + public void setLastCalendarUpdateTick(long tick) + { + lastUpdateTick = tick; + } + + @Override + public void loadAdditional(CompoundTag nbt) + { + lastUpdateTick = nbt.getLong("tick"); + lastGrowthTick = nbt.getLong("lastGrowthTick"); + growth = nbt.getFloat("growth"); + super.loadAdditional(nbt); + } + + @Override + public void saveAdditional(CompoundTag nbt) + { + nbt.putLong("tick", lastUpdateTick); + nbt.putLong("lastGrowthTick", lastGrowthTick); + nbt.putFloat("growth", growth); + super.saveAdditional(nbt); + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/blockentities/WineShelfBlockEntity.java b/src/main/java/com/eerussianguy/firmalife/common/blockentities/WineShelfBlockEntity.java new file mode 100644 index 00000000..cdcc257e --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/blockentities/WineShelfBlockEntity.java @@ -0,0 +1,40 @@ +package com.eerussianguy.firmalife.common.blockentities; + +import com.eerussianguy.firmalife.common.FLHelpers; +import com.eerussianguy.firmalife.common.FLTags; +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.items.ItemStackHandler; + +import net.dries007.tfc.common.blockentities.InventoryBlockEntity; +import net.dries007.tfc.util.Helpers; + +public class WineShelfBlockEntity extends InventoryBlockEntity +{ + public WineShelfBlockEntity(BlockPos pos, BlockState state) + { + super(FLBlockEntities.WINE_SHELF.get(), pos, state, defaultInventory(4), FLHelpers.blockEntityName("wine_shelf")); + } + + @Override + public void setAndUpdateSlots(int slot) + { + super.setAndUpdateSlots(slot); + if (level != null) + level.sendBlockUpdated(worldPosition, getBlockState(), getBlockState(), Block.UPDATE_CLIENTS); + } + + @Override + public boolean isItemValid(int slot, ItemStack stack) + { + return Helpers.isItem(stack, FLTags.Items.WINE_BOTTLES); + } + + @Override + public int getSlotStackLimit(int slot) + { + return 1; + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/FLBlocks.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/FLBlocks.java index 76a8b849..378d6bfd 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/blocks/FLBlocks.java +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/FLBlocks.java @@ -145,6 +145,7 @@ public class FLBlocks public static final Map> HANGERS = Helpers.mapOfKeys(Wood.class, wood -> register("wood/hanger/" + wood.getSerializedName(), () -> new HangerBlock(hangerProperties().mapColor(wood.woodColor())))); public static final Map> JARBNETS = Helpers.mapOfKeys(Wood.class, wood -> register("wood/jarbnet/" + wood.getSerializedName(), () -> new JarbnetBlock(jarbnetProperties().mapColor(wood.woodColor())))); public static final Map> BIG_BARRELS = Helpers.mapOfKeys(Wood.class, wood -> register("wood/big_barrel/" + wood.getSerializedName(), () -> new BigBarrelBlock(ExtendedProperties.of().mapColor(wood.woodColor()).sound(SoundType.WOOD).noOcclusion().strength(10f).pushReaction(PushReaction.BLOCK).flammableLikeLogs().blockEntity(FLBlockEntities.BIG_BARREL)))); + public static final Map> WINE_SHELVES = Helpers.mapOfKeys(Wood.class, wood -> register("wood/wine_shelf/" + wood.getSerializedName(), () -> new WineShelfBlock(ExtendedProperties.of().mapColor(wood.woodColor()).sound(SoundType.WOOD).noOcclusion().strength(4f).pushReaction(PushReaction.BLOCK).flammableLikeLogs().blockEntity(FLBlockEntities.WINE_SHELF)))); public static final RegistryObject GRAPE_TRELLIS_POST = register("grape_trellis_post", () -> new GrapeTrellisPostBlock(ExtendedProperties.of().noOcclusion().strength(4f).sound(SoundType.WOOD).mapColor(MapColor.COLOR_BROWN).flammableLikeLogs())); public static final RegistryObject GRAPE_TRELLIS_POST_WHITE = registerNoItem("grape_trellis_post_white", () -> new GrapeTrellisPostWithPlantBlock(ExtendedProperties.of().noOcclusion().strength(4f).sound(SoundType.WOOD).mapColor(MapColor.COLOR_BROWN).flammableLikeLogs())); @@ -152,8 +153,8 @@ public class FLBlocks public static final RegistryObject GRAPE_STRING = registerNoItem("grape_string", () -> new GrapeStringBlock(ExtendedProperties.of().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs())); public static final RegistryObject GRAPE_STRING_RED = registerNoItem("grape_string_red", () -> new GrapeStringWithPlantBlock(ExtendedProperties.of().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs(), GRAPE_TRELLIS_POST_RED)); public static final RegistryObject GRAPE_STRING_WHITE = registerNoItem("grape_string_white", () -> new GrapeStringWithPlantBlock(ExtendedProperties.of().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs(), GRAPE_TRELLIS_POST_WHITE)); - public static final RegistryObject GRAPE_STRING_PLANT_RED = registerNoItem("grape_string_plant_red", () -> new GrapeGroundPlantOnStringBlock(ExtendedProperties.of().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs(), GRAPE_STRING_RED)); - public static final RegistryObject GRAPE_STRING_PLANT_WHITE = registerNoItem("grape_string_plant_white", () -> new GrapeGroundPlantOnStringBlock(ExtendedProperties.of().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs(), GRAPE_STRING_WHITE)); + public static final RegistryObject GRAPE_STRING_PLANT_RED = registerNoItem("grape_string_plant_red", () -> new GrapeGroundPlantOnStringBlock(ExtendedProperties.of().randomTicks().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs().blockEntity(FLBlockEntities.GRAPE_PLANT).serverTicks(GrapePlantBlockEntity::serverTick), GRAPE_STRING_RED)); + public static final RegistryObject GRAPE_STRING_PLANT_WHITE = registerNoItem("grape_string_plant_white", () -> new GrapeGroundPlantOnStringBlock(ExtendedProperties.of().randomTicks().noOcclusion().strength(1.0f).sound(SoundType.WOOL).flammableLikeLogs().blockEntity(FLBlockEntities.GRAPE_PLANT).serverTicks(GrapePlantBlockEntity::serverTick), GRAPE_STRING_WHITE)); public static final Map> CARVED_PUMPKINS = Helpers.mapOfKeys(Carving.class, carve -> register("carved_pumpkin/" + carve.getSerializedName(), () -> new CarvedPumpkinBlock(Properties.of().mapColor(MapColor.COLOR_ORANGE).strength(1.0F).sound(SoundType.WOOD).isValidSpawn(FLBlocks::always))) diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/WineShelfBlock.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/WineShelfBlock.java new file mode 100644 index 00000000..ea79a12d --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/WineShelfBlock.java @@ -0,0 +1,82 @@ +package com.eerussianguy.firmalife.common.blocks; + +import com.eerussianguy.firmalife.common.FLHelpers; +import com.eerussianguy.firmalife.common.FLTags; +import com.eerussianguy.firmalife.common.blockentities.WineShelfBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.BooleanOp; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.items.IItemHandler; + +import net.dries007.tfc.common.blocks.ExtendedProperties; +import net.dries007.tfc.common.capabilities.Capabilities; +import net.dries007.tfc.util.Helpers; + +public class WineShelfBlock extends FourWayDeviceBlock +{ + public static final VoxelShape[] SHAPES = Helpers.computeHorizontalShapes(dir -> Shapes.or( + Shapes.join(Shapes.block(), Helpers.rotateShape(dir, 1, 1, 0, 15, 15, 15), BooleanOp.ONLY_FIRST) + )); + + public WineShelfBlock(ExtendedProperties properties) + { + super(properties, InventoryRemoveBehavior.DROP); + } + + @Override + @SuppressWarnings("deprecation") + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult result) + { + if (level.getBlockEntity(pos) instanceof WineShelfBlockEntity shelf) + { + final IItemHandler inv = Helpers.getCapability(shelf, Capabilities.ITEM); + if (inv != null) + { + final ItemStack held = player.getItemInHand(hand); + if (Helpers.isItem(held, FLTags.Items.WINE_BOTTLES)) + { + Helpers.playSound(level, pos, SoundEvents.GLASS_PLACE); + return FLHelpers.insertOneAny(level, held, 0, 3, shelf, player); + } + else if (held.isEmpty()) + { + Helpers.playSound(level, pos, SoundEvents.GLASS_PLACE); + return FLHelpers.takeOneAny(level, 0, 3, shelf, player); + } + } + } + return InteractionResult.PASS; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) + { + return SHAPES[state.getValue(FACING).get2DDataValue()]; + } + + @Override + @SuppressWarnings("deprecation") + public int getLightBlock(BlockState pState, BlockGetter pLevel, BlockPos pPos) + { + return 0; + } + + @Override + @SuppressWarnings("deprecation") + public float getShadeBrightness(BlockState state, BlockGetter level, BlockPos pos) + { + return 1f; + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeGroundPlantOnStringBlock.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeGroundPlantOnStringBlock.java index e4c19148..4cce4ecc 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeGroundPlantOnStringBlock.java +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeGroundPlantOnStringBlock.java @@ -1,24 +1,46 @@ package com.eerussianguy.firmalife.common.blocks.plant; +import java.util.List; import java.util.function.Supplier; +import com.eerussianguy.firmalife.common.blockentities.GrapePlantBlockEntity; +import com.eerussianguy.firmalife.common.blocks.FLBlocks; +import com.eerussianguy.firmalife.common.util.FLClimateRanges; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.dries007.tfc.common.TFCTags; import net.dries007.tfc.common.blocks.ExtendedProperties; import net.dries007.tfc.common.blocks.TFCBlockStateProperties; +import net.dries007.tfc.common.blocks.plant.fruit.Lifecycle; +import net.dries007.tfc.common.blocks.soil.FarmlandBlock; +import net.dries007.tfc.common.blocks.soil.HoeOverlayBlock; import net.dries007.tfc.util.Helpers; -public class GrapeGroundPlantOnStringBlock extends GrapeStringBlock +public class GrapeGroundPlantOnStringBlock extends GrapeStringBlock implements IGrape, HoeOverlayBlock { public static final IntegerProperty STAGE = TFCBlockStateProperties.STAGE_2; + public static final EnumProperty LIFECYCLE = TFCBlockStateProperties.LIFECYCLE; + + public static final VoxelShape SHAPE_X_PLANT = Shapes.or(SHAPE_X, box(6, 0, 6, 10, 16, 10)); + public static final VoxelShape SHAPE_Z_PLANT = Shapes.or(SHAPE_Z, box(6, 0, 6, 10, 16, 10)); private final Supplier topBlock; @@ -26,34 +48,84 @@ public GrapeGroundPlantOnStringBlock(ExtendedProperties properties, Supplier tooltip, boolean debug) + { + tooltip.add(FarmlandBlock.getTemperatureTooltip(level, pos, FLClimateRanges.GRAPES.get(), false)); + if (level.getBlockEntity(pos) instanceof GrapePlantBlockEntity grape) + { + tooltip.add(Component.literal("[Debug] Growth: " + grape.getGrowth())); + tooltip.add(Component.literal("[Debug] Brain Pos: " + grape.getBrainBlock().toShortString())); + } + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) + { + return state.getValue(AXIS) == Direction.Axis.X ? SHAPE_X_PLANT : SHAPE_Z_PLANT; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getBlockSupportShape(BlockState state, BlockGetter level, BlockPos pos) + { + return Shapes.empty(); } @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { - super.createBlockStateDefinition(builder.add(STAGE)); + super.createBlockStateDefinition(builder.add(STAGE, LIFECYCLE)); } } diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringBlock.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringBlock.java index 7f286293..a19f29de 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringBlock.java +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringBlock.java @@ -36,7 +36,7 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac final Direction.Axis axis = state.getValue(AXIS); if (facing.getAxis() == axis) { - return facingState.getBlock() instanceof GrapeTrellisPostBlock ? state : Blocks.AIR.defaultBlockState(); + return facingState.getBlock() instanceof GrapeTrellisPostBlock && facingState.getValue(AXIS) != axis ? state : Blocks.AIR.defaultBlockState(); } return state; } diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringWithPlantBlock.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringWithPlantBlock.java index 1e4bc886..e37f9a24 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringWithPlantBlock.java +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeStringWithPlantBlock.java @@ -4,18 +4,20 @@ import com.eerussianguy.firmalife.common.blocks.FLBlocks; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.sounds.SoundEvents; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import net.dries007.tfc.common.TFCTags; import net.dries007.tfc.common.blocks.ExtendedProperties; @@ -23,9 +25,10 @@ import net.dries007.tfc.common.blocks.plant.fruit.Lifecycle; import net.dries007.tfc.util.Helpers; -public class GrapeStringWithPlantBlock extends GrapeStringBlock +public class GrapeStringWithPlantBlock extends GrapeStringBlock implements IGrape { public static final EnumProperty LIFECYCLE = TFCBlockStateProperties.LIFECYCLE; + public static final VoxelShape SHAPE = box(0, 4, 0, 16, 16, 16); private final Supplier postPlantBlock; @@ -42,7 +45,7 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac final BlockState superState = super.updateShape(state, facing, facingState, level, pos, facingPos); if (superState.isAir()) return superState; - if (facing == Direction.DOWN && !Helpers.isBlock(facingState, TFCTags.Blocks.BUSH_PLANTABLE_ON)) + if (facing == Direction.DOWN && !(facingState.getBlock() instanceof GrapeGroundPlantOnStringBlock)) { return Helpers.copyProperty(FLBlocks.GRAPE_STRING.get().defaultBlockState(), state, AXIS); } @@ -53,11 +56,24 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac @SuppressWarnings("deprecation") public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult result) { - level.setBlockAndUpdate(pos, state.cycle(LIFECYCLE)); + return InteractionResult.PASS; + } + + @Override + public void advance(Level level, BlockPos pos, BlockState state) + { final Direction dir = state.getValue(AXIS) == Direction.Axis.X ? Direction.EAST : Direction.SOUTH; convertToPlant(level, pos.relative(dir)); convertToPlant(level, pos.relative(dir.getOpposite())); - return InteractionResult.SUCCESS; + } + + @Override + public void advanceLifecycle(Level level, BlockPos pos, BlockState state, Lifecycle lifecycle) + { + updateLifecycle(level, pos, state, lifecycle); + final Direction dir = state.getValue(AXIS) == Direction.Axis.X ? Direction.EAST : Direction.SOUTH; + updateLifecycle(level, pos.relative(dir), level.getBlockState(pos.relative(dir)), lifecycle); + updateLifecycle(level, pos.relative(dir.getOpposite()), level.getBlockState(pos.relative(dir.getOpposite())), lifecycle); } private void convertToPlant(Level level, BlockPos pos) @@ -69,6 +85,20 @@ private void convertToPlant(Level level, BlockPos pos) } } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) + { + return SHAPE; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getBlockSupportShape(BlockState state, BlockGetter level, BlockPos pos) + { + return Shapes.empty(); + } + @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeTrellisPostWithPlantBlock.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeTrellisPostWithPlantBlock.java index d53ef8d0..08091b70 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeTrellisPostWithPlantBlock.java +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/GrapeTrellisPostWithPlantBlock.java @@ -5,12 +5,16 @@ import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import net.dries007.tfc.common.blocks.ExtendedProperties; import net.dries007.tfc.common.blocks.TFCBlockStateProperties; @@ -19,6 +23,7 @@ public class GrapeTrellisPostWithPlantBlock extends GrapeTrellisPostBlock { public static final EnumProperty LIFECYCLE = TFCBlockStateProperties.LIFECYCLE; + public static final VoxelShape SHAPE_WITH_PLANT = Shapes.or(SHAPE, box(0, 4, 0, 16, 16, 16)); public GrapeTrellisPostWithPlantBlock(ExtendedProperties properties) { @@ -32,12 +37,24 @@ public InteractionResult use(BlockState state, Level level, BlockPos pos, Player final InteractionResult ropeUse = super.use(state, level, pos, player, hand, result); if (!ropeUse.consumesAction()) { - level.setBlockAndUpdate(pos, state.cycle(LIFECYCLE)); return InteractionResult.SUCCESS; } return InteractionResult.SUCCESS; } + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) + { + return SHAPE_WITH_PLANT; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getBlockSupportShape(BlockState state, BlockGetter level, BlockPos pos) + { + return Shapes.empty(); + } + @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { diff --git a/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/IGrape.java b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/IGrape.java new file mode 100644 index 00000000..d3112cc6 --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/blocks/plant/IGrape.java @@ -0,0 +1,26 @@ +package com.eerussianguy.firmalife.common.blocks.plant; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +import net.dries007.tfc.common.blocks.TFCBlockStateProperties; +import net.dries007.tfc.common.blocks.plant.fruit.Lifecycle; + +public interface IGrape +{ + default void advance(Level level, BlockPos pos, BlockState state) {} + + default void advanceLifecycle(Level level, BlockPos pos, BlockState state, Lifecycle lifecycle) + { + updateLifecycle(level, pos, state, lifecycle); + } + + default void updateLifecycle(Level level, BlockPos pos, BlockState state, Lifecycle lifecycle) + { + if (state.hasProperty(TFCBlockStateProperties.LIFECYCLE) && state.getValue(TFCBlockStateProperties.LIFECYCLE) != lifecycle) + { + level.setBlockAndUpdate(pos, state.setValue(TFCBlockStateProperties.LIFECYCLE, lifecycle)); + } + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/IWine.java b/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/IWine.java new file mode 100644 index 00000000..420926bd --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/IWine.java @@ -0,0 +1,50 @@ +package com.eerussianguy.firmalife.common.capabilities.wine; + +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraftforge.common.util.INBTSerializable; +import org.jetbrains.annotations.Nullable; + +import net.dries007.tfc.util.calendar.Calendars; + + +public interface IWine extends INBTSerializable +{ + long getCreationDate(); + + void setCreationDate(long ticks); + + long getOpenDate(); + + void setOpenDate(long ticks); + + @Nullable + String getLabelText(); + + void setLabelText(String text); + + default boolean isSealed() + { + return getOpenDate() == -1; + } + + default void addTooltipInfo(List tooltip) + { + if (isSealed()) + { + tooltip.add(Component.translatable("firmalife.wine.sealed").withStyle(ChatFormatting.ITALIC).withStyle(ChatFormatting.GOLD)); + if (getLabelText() != null) + tooltip.add(Component.literal(getLabelText())); + tooltip.add(Component.translatable("firmalife.wine.age_time", Calendars.CLIENT.getTimeDelta(Calendars.CLIENT.getTicks() - getCreationDate()))); + } + else + { + tooltip.add(Component.translatable("firmalife.wine.unsealed").withStyle(ChatFormatting.ITALIC).withStyle(ChatFormatting.GOLD)); + if (getLabelText() != null) + tooltip.add(Component.literal(getLabelText())); + tooltip.add(Component.translatable("firmalife.wine.age_time_opened", Calendars.CLIENT.getTimeDelta(getOpenDate() - getCreationDate()))); + } + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/WineCapability.java b/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/WineCapability.java new file mode 100644 index 00000000..7f7fc2f2 --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/WineCapability.java @@ -0,0 +1,13 @@ +package com.eerussianguy.firmalife.common.capabilities.wine; + +import com.eerussianguy.firmalife.common.FLHelpers; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.CapabilityManager; +import net.minecraftforge.common.capabilities.CapabilityToken; + +public class WineCapability +{ + public static final Capability CAPABILITY = CapabilityManager.get(new CapabilityToken<>() {}); + public static final ResourceLocation KEY = FLHelpers.identifier("wine"); +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/WineHandler.java b/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/WineHandler.java new file mode 100644 index 00000000..1cb36c3a --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/capabilities/wine/WineHandler.java @@ -0,0 +1,112 @@ +package com.eerussianguy.firmalife.common.capabilities.wine; + +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ICapabilitySerializable; +import net.minecraftforge.common.util.LazyOptional; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class WineHandler implements IWine, ICapabilitySerializable +{ + private final ItemStack stack; + private long creationDate = -1L; + private long openDate = -1L; + private final LazyOptional capability = LazyOptional.of(() -> this); + private boolean initialized = false; + @Nullable private String labelText = null; + + public WineHandler(ItemStack stack) + { + this.stack = stack; + } + + @Nullable + @Override + public String getLabelText() + { + return labelText; + } + + @Override + public void setLabelText(String labelText) + { + this.labelText = labelText; + save(); + } + + @Override + public long getCreationDate() + { + return creationDate; + } + + @Override + public void setCreationDate(long ticks) + { + this.creationDate = ticks; + save(); + } + + @Override + public long getOpenDate() + { + return openDate; + } + + @Override + public void setOpenDate(long ticks) + { + this.openDate = ticks; + save(); + } + + @Override + public CompoundTag serializeNBT() + { + return new CompoundTag(); + } + + @Override + public void deserializeNBT(CompoundTag nbt) { } + + private void load() + { + if (!initialized) + { + initialized = true; + + final CompoundTag tag = stack.getOrCreateTag(); + if (tag.contains("wine", Tag.TAG_COMPOUND)) + { + final CompoundTag wineTag = tag.getCompound("wine"); + creationDate = wineTag.getLong("creationDate"); + openDate = wineTag.getLong("openDate"); + } + } + } + + private void save() + { + final CompoundTag tag = stack.getOrCreateTag(); + final CompoundTag wineTag = new CompoundTag(); + wineTag.putLong("creationDate", creationDate); + wineTag.putLong("openDate", openDate); + tag.put("wine", wineTag); + } + + @NotNull + @Override + public LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) + { + if (cap == WineCapability.CAPABILITY) + { + load(); + return capability.cast(); + } + return LazyOptional.empty(); + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/items/FLItems.java b/src/main/java/com/eerussianguy/firmalife/common/items/FLItems.java index 2966d678..5fcb3021 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/items/FLItems.java +++ b/src/main/java/com/eerussianguy/firmalife/common/items/FLItems.java @@ -58,9 +58,14 @@ public class FLItems public static final RegistryObject SPRINKLER = register("sprinkler", () -> new SprinklerItem(FLBlocks.SPRINKLER.get(), FLBlocks.FLOOR_SPRINKLER.get(), prop())); public static final RegistryObject TREATED_LUMBER = register("treated_lumber"); public static final RegistryObject WATERING_CAN = register("watering_can", () -> new WateringCanItem(prop().defaultDurability(20))); - public static final RegistryObject HEMATITIC_WINE_BOTTLE = register("hematitic_wine_bottle"); - public static final RegistryObject VOLCANIC_WINE_BOTTLE = register("volcanic_wine_bottle"); - public static final RegistryObject OLIVINE_WINE_BOTTLE = register("olivine_wine_bottle"); + public static final RegistryObject HEMATITIC_WINE_BOTTLE = register("hematitic_wine_bottle", () -> new FilledWineBottleItem(prop(), FLHelpers.identifier("block/hematitic_wine_bottle"))); + public static final RegistryObject VOLCANIC_WINE_BOTTLE = register("volcanic_wine_bottle", () -> new FilledWineBottleItem(prop(), FLHelpers.identifier("block/volcanic_wine_bottle"))); + public static final RegistryObject OLIVINE_WINE_BOTTLE = register("olivine_wine_bottle", () -> new FilledWineBottleItem(prop(), FLHelpers.identifier("block/olivine_wine_bottle"))); + public static final RegistryObject EMPTY_HEMATITIC_WINE_BOTTLE = register("empty_hematitic_wine_bottle", () -> new WineBottleItem(prop(), FLHelpers.identifier("block/empty_hematitic_wine_bottle"))); + public static final RegistryObject EMPTY_VOLCANIC_WINE_BOTTLE = register("empty_volcanic_wine_bottle", () -> new WineBottleItem(prop(), FLHelpers.identifier("block/empty_volcanic_wine_bottle"))); + public static final RegistryObject EMPTY_OLIVINE_WINE_BOTTLE = register("empty_olivine_wine_bottle", () -> new WineBottleItem(prop(), FLHelpers.identifier("block/empty_olivine_wine_bottle"))); + public static final RegistryObject CORK = register("cork"); + public static final RegistryObject BOTTLE_LABEL = register("bottle_label"); public static final RegistryObject RED_GRAPE_SEEDS = register("seeds/red_grape", () -> new GrapeSeedItem(new Item.Properties(), FLBlocks.GRAPE_STRING_PLANT_RED)); public static final RegistryObject WHITE_GRAPE_SEEDS = register("seeds/white_grape", () -> new GrapeSeedItem(new Item.Properties(), FLBlocks.GRAPE_STRING_PLANT_WHITE)); diff --git a/src/main/java/com/eerussianguy/firmalife/common/items/FilledWineBottleItem.java b/src/main/java/com/eerussianguy/firmalife/common/items/FilledWineBottleItem.java new file mode 100644 index 00000000..9c43bb2a --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/items/FilledWineBottleItem.java @@ -0,0 +1,70 @@ +package com.eerussianguy.firmalife.common.items; + +import java.util.List; +import com.eerussianguy.firmalife.common.capabilities.wine.WineCapability; +import com.eerussianguy.firmalife.common.capabilities.wine.WineHandler; +import net.minecraft.ChatFormatting; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.entity.SlotAccess; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ClickAction; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.items.ItemHandlerHelper; +import org.jetbrains.annotations.Nullable; + +import net.dries007.tfc.common.TFCTags; +import net.dries007.tfc.util.Helpers; +import net.dries007.tfc.util.calendar.Calendars; + +public class FilledWineBottleItem extends WineBottleItem +{ + public FilledWineBottleItem(Properties properties, ResourceLocation modelLocation) + { + super(properties, modelLocation); + } + + @Override + public boolean overrideOtherStackedOnMe(ItemStack stack, ItemStack other, Slot slot, ClickAction action, Player player, SlotAccess carried) + { + if (action == ClickAction.SECONDARY && Helpers.isItem(other, TFCTags.Items.KNIVES)) + { + return stack.getCapability(WineCapability.CAPABILITY).map(wine -> { + if (wine.isSealed()) + { + player.playSound(SoundEvents.BAMBOO_BREAK); + wine.setOpenDate(Calendars.get(player.level()).getTicks()); + ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(FLItems.CORK.get())); + other.hurtAndBreak(1, player, p -> {}); + return true; + } + return false; + }).orElse(false); + } + return false; + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag debug) + { + stack.getCapability(WineCapability.CAPABILITY).ifPresent(wine -> { + if (wine.isSealed()) + { + tooltip.add(Component.translatable("firmalife.wine.how_to_open").withStyle(ChatFormatting.GRAY)); + } + }); + } + + @Override + public @Nullable ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) + { + return new WineHandler(stack); + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/items/WineBottleItem.java b/src/main/java/com/eerussianguy/firmalife/common/items/WineBottleItem.java new file mode 100644 index 00000000..542898d3 --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/items/WineBottleItem.java @@ -0,0 +1,20 @@ +package com.eerussianguy.firmalife.common.items; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; + +public class WineBottleItem extends Item +{ + private final ResourceLocation modelLocation; + + public WineBottleItem(Properties properties, ResourceLocation modelLocation) + { + super(properties); + this.modelLocation = modelLocation; + } + + public ResourceLocation getModelLocation() + { + return modelLocation; + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/recipes/data/ContainerAwareModifier.java b/src/main/java/com/eerussianguy/firmalife/common/recipes/data/ContainerAwareModifier.java deleted file mode 100644 index 27d2b231..00000000 --- a/src/main/java/com/eerussianguy/firmalife/common/recipes/data/ContainerAwareModifier.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.eerussianguy.firmalife.common.recipes.data; - -import net.minecraft.world.inventory.CraftingContainer; -import net.minecraft.world.item.ItemStack; - -import net.dries007.tfc.common.capabilities.food.FoodCapability; -import net.dries007.tfc.common.capabilities.food.FoodHandler; -import net.dries007.tfc.common.capabilities.food.Nutrient; -import net.dries007.tfc.common.recipes.RecipeHelpers; -import net.dries007.tfc.common.recipes.outputs.ItemStackModifier; - -public interface ContainerAwareModifier extends ItemStackModifier.SingleInstance -{ - @Override - default ItemStack apply(ItemStack stack, ItemStack input) - { - CraftingContainer inv = RecipeHelpers.getCraftingContainer(); - if (inv != null) - { - stack.getCapability(FoodCapability.CAPABILITY).ifPresent(food -> { - if (food instanceof FoodHandler.Dynamic dynamic) - { - initFoodStats(inv, dynamic); - } - }); - return stack; - } - return stack; - } - - default float[] freshNutrients() - { - return new float[Nutrient.TOTAL]; - } - - void initFoodStats(CraftingContainer inv, FoodHandler.Dynamic dynamic); -} diff --git a/src/main/java/com/eerussianguy/firmalife/common/recipes/data/FLItemStackModifiers.java b/src/main/java/com/eerussianguy/firmalife/common/recipes/data/FLItemStackModifiers.java index ac1b54b1..b49ccbab 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/recipes/data/FLItemStackModifiers.java +++ b/src/main/java/com/eerussianguy/firmalife/common/recipes/data/FLItemStackModifiers.java @@ -12,6 +12,7 @@ public static void init() register("copy_dynamic_food", CopyDynamicFoodModifier.INSTANCE); register("copy_bowl", CopyBowlModifier.INSTANCE); register("empty_pan", EmptyPanModifier.INSTANCE); + register("label_wine", LabelWineModifier.INSTANCE); } private static void register(String name, ItemStackModifier.Serializer serializer) diff --git a/src/main/java/com/eerussianguy/firmalife/common/recipes/data/LabelWineModifier.java b/src/main/java/com/eerussianguy/firmalife/common/recipes/data/LabelWineModifier.java new file mode 100644 index 00000000..b95b442c --- /dev/null +++ b/src/main/java/com/eerussianguy/firmalife/common/recipes/data/LabelWineModifier.java @@ -0,0 +1,27 @@ +package com.eerussianguy.firmalife.common.recipes.data; + +import com.eerussianguy.firmalife.common.capabilities.wine.WineCapability; +import net.minecraft.world.item.ItemStack; + +import net.dries007.tfc.common.recipes.outputs.ItemStackModifier; + +public enum LabelWineModifier implements ItemStackModifier.SingleInstance +{ + INSTANCE; + + @Override + public LabelWineModifier instance() + { + return INSTANCE; + } + + @Override + public ItemStack apply(ItemStack stack, ItemStack input) + { + if (input.hasCustomHoverName()) + { + stack.getCapability(WineCapability.CAPABILITY).ifPresent(wine -> wine.setLabelText(input.getHoverName().getString())); + } + return stack; + } +} diff --git a/src/main/java/com/eerussianguy/firmalife/common/util/FLClimateRanges.java b/src/main/java/com/eerussianguy/firmalife/common/util/FLClimateRanges.java index dc2b941c..1f040c4f 100644 --- a/src/main/java/com/eerussianguy/firmalife/common/util/FLClimateRanges.java +++ b/src/main/java/com/eerussianguy/firmalife/common/util/FLClimateRanges.java @@ -15,6 +15,7 @@ public class FLClimateRanges { public static final Map> FRUIT_TREES = Helpers.mapOfKeys(FLFruitBlocks.Tree.class, tree -> register("plant/" + tree.name() + "_tree")); public static final Map> STATIONARY_BUSHES = Helpers.mapOfKeys(FLFruitBlocks.StationaryBush.class, bush -> register("plant/" + bush.name() + "_bush")); + public static final Supplier GRAPES = register("plant/grapes"); private static RegisteredDataManager.Entry register(String name) { diff --git a/src/main/resources/assets/firmalife/blockstates/grape_string_plant_red.json b/src/main/resources/assets/firmalife/blockstates/grape_string_plant_red.json index c6463181..0c5a006c 100644 --- a/src/main/resources/assets/firmalife/blockstates/grape_string_plant_red.json +++ b/src/main/resources/assets/firmalife/blockstates/grape_string_plant_red.json @@ -1,25 +1,88 @@ { "__comment__": "This file was automatically created by mcresources", "variants": { - "axis=x,stage=0": { + "axis=x,lifecycle=dormant,stage=0": { + "model": "firmalife:block/grape_dead_0", + "y": 90 + }, + "axis=x,lifecycle=healthy,stage=0": { "model": "firmalife:block/grape_0", "y": 90 }, - "axis=z,stage=0": { - "model": "firmalife:block/grape_0" + "axis=x,lifecycle=fruiting,stage=0": { + "model": "firmalife:block/grape_0", + "y": 90 }, - "axis=x,stage=1": { + "axis=x,lifecycle=flowering,stage=0": { + "model": "firmalife:block/grape_0", + "y": 90 + }, + "axis=x,lifecycle=dormant,stage=1": { + "model": "firmalife:block/grape_dead_1", + "y": 90 + }, + "axis=x,lifecycle=healthy,stage=1": { "model": "firmalife:block/grape_1", "y": 90 }, - "axis=z,stage=1": { - "model": "firmalife:block/grape_1" + "axis=x,lifecycle=fruiting,stage=1": { + "model": "firmalife:block/grape_1", + "y": 90 + }, + "axis=x,lifecycle=flowering,stage=1": { + "model": "firmalife:block/grape_1", + "y": 90 }, - "axis=x,stage=2": { + "axis=x,lifecycle=dormant,stage=2": { + "model": "firmalife:block/grape_dead_2", + "y": 90 + }, + "axis=x,lifecycle=healthy,stage=2": { "model": "firmalife:block/grape_2", "y": 90 }, - "axis=z,stage=2": { + "axis=x,lifecycle=fruiting,stage=2": { + "model": "firmalife:block/grape_2", + "y": 90 + }, + "axis=x,lifecycle=flowering,stage=2": { + "model": "firmalife:block/grape_2", + "y": 90 + }, + "axis=z,lifecycle=dormant,stage=0": { + "model": "firmalife:block/grape_dead_0" + }, + "axis=z,lifecycle=healthy,stage=0": { + "model": "firmalife:block/grape_0" + }, + "axis=z,lifecycle=fruiting,stage=0": { + "model": "firmalife:block/grape_0" + }, + "axis=z,lifecycle=flowering,stage=0": { + "model": "firmalife:block/grape_0" + }, + "axis=z,lifecycle=dormant,stage=1": { + "model": "firmalife:block/grape_dead_1" + }, + "axis=z,lifecycle=healthy,stage=1": { + "model": "firmalife:block/grape_1" + }, + "axis=z,lifecycle=fruiting,stage=1": { + "model": "firmalife:block/grape_1" + }, + "axis=z,lifecycle=flowering,stage=1": { + "model": "firmalife:block/grape_1" + }, + "axis=z,lifecycle=dormant,stage=2": { + "model": "firmalife:block/grape_dead_2" + }, + "axis=z,lifecycle=healthy,stage=2": { + "model": "firmalife:block/grape_2" + }, + "axis=z,lifecycle=fruiting,stage=2": { + "model": "firmalife:block/grape_2" + }, + "axis=z,lifecycle=flowering,stage=2": { "model": "firmalife:block/grape_2" } } diff --git a/src/main/resources/assets/firmalife/blockstates/grape_string_plant_white.json b/src/main/resources/assets/firmalife/blockstates/grape_string_plant_white.json index c6463181..0c5a006c 100644 --- a/src/main/resources/assets/firmalife/blockstates/grape_string_plant_white.json +++ b/src/main/resources/assets/firmalife/blockstates/grape_string_plant_white.json @@ -1,25 +1,88 @@ { "__comment__": "This file was automatically created by mcresources", "variants": { - "axis=x,stage=0": { + "axis=x,lifecycle=dormant,stage=0": { + "model": "firmalife:block/grape_dead_0", + "y": 90 + }, + "axis=x,lifecycle=healthy,stage=0": { "model": "firmalife:block/grape_0", "y": 90 }, - "axis=z,stage=0": { - "model": "firmalife:block/grape_0" + "axis=x,lifecycle=fruiting,stage=0": { + "model": "firmalife:block/grape_0", + "y": 90 }, - "axis=x,stage=1": { + "axis=x,lifecycle=flowering,stage=0": { + "model": "firmalife:block/grape_0", + "y": 90 + }, + "axis=x,lifecycle=dormant,stage=1": { + "model": "firmalife:block/grape_dead_1", + "y": 90 + }, + "axis=x,lifecycle=healthy,stage=1": { "model": "firmalife:block/grape_1", "y": 90 }, - "axis=z,stage=1": { - "model": "firmalife:block/grape_1" + "axis=x,lifecycle=fruiting,stage=1": { + "model": "firmalife:block/grape_1", + "y": 90 + }, + "axis=x,lifecycle=flowering,stage=1": { + "model": "firmalife:block/grape_1", + "y": 90 }, - "axis=x,stage=2": { + "axis=x,lifecycle=dormant,stage=2": { + "model": "firmalife:block/grape_dead_2", + "y": 90 + }, + "axis=x,lifecycle=healthy,stage=2": { "model": "firmalife:block/grape_2", "y": 90 }, - "axis=z,stage=2": { + "axis=x,lifecycle=fruiting,stage=2": { + "model": "firmalife:block/grape_2", + "y": 90 + }, + "axis=x,lifecycle=flowering,stage=2": { + "model": "firmalife:block/grape_2", + "y": 90 + }, + "axis=z,lifecycle=dormant,stage=0": { + "model": "firmalife:block/grape_dead_0" + }, + "axis=z,lifecycle=healthy,stage=0": { + "model": "firmalife:block/grape_0" + }, + "axis=z,lifecycle=fruiting,stage=0": { + "model": "firmalife:block/grape_0" + }, + "axis=z,lifecycle=flowering,stage=0": { + "model": "firmalife:block/grape_0" + }, + "axis=z,lifecycle=dormant,stage=1": { + "model": "firmalife:block/grape_dead_1" + }, + "axis=z,lifecycle=healthy,stage=1": { + "model": "firmalife:block/grape_1" + }, + "axis=z,lifecycle=fruiting,stage=1": { + "model": "firmalife:block/grape_1" + }, + "axis=z,lifecycle=flowering,stage=1": { + "model": "firmalife:block/grape_1" + }, + "axis=z,lifecycle=dormant,stage=2": { + "model": "firmalife:block/grape_dead_2" + }, + "axis=z,lifecycle=healthy,stage=2": { + "model": "firmalife:block/grape_2" + }, + "axis=z,lifecycle=fruiting,stage=2": { + "model": "firmalife:block/grape_2" + }, + "axis=z,lifecycle=flowering,stage=2": { "model": "firmalife:block/grape_2" } } diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/acacia.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/acacia.json new file mode 100644 index 00000000..42a583d0 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/acacia.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/acacia_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/acacia_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/acacia_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/acacia_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/ash.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/ash.json new file mode 100644 index 00000000..c47830ac --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/ash.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/ash_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/ash_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/ash_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/ash_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/aspen.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/aspen.json new file mode 100644 index 00000000..14ddfa9a --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/aspen.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/aspen_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/aspen_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/aspen_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/aspen_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/birch.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/birch.json new file mode 100644 index 00000000..32b39bfc --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/birch.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/birch_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/birch_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/birch_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/birch_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/blackwood.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/blackwood.json new file mode 100644 index 00000000..90084afb --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/blackwood.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/blackwood_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/blackwood_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/blackwood_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/blackwood_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/chestnut.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/chestnut.json new file mode 100644 index 00000000..5e3fd696 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/chestnut.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/chestnut_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/chestnut_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/chestnut_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/chestnut_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/douglas_fir.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/douglas_fir.json new file mode 100644 index 00000000..e17503db --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/douglas_fir.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/douglas_fir_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/douglas_fir_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/douglas_fir_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/douglas_fir_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/hickory.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/hickory.json new file mode 100644 index 00000000..4623bc5e --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/hickory.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/hickory_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/hickory_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/hickory_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/hickory_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/kapok.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/kapok.json new file mode 100644 index 00000000..39083361 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/kapok.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/kapok_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/kapok_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/kapok_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/kapok_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/mangrove.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/mangrove.json new file mode 100644 index 00000000..97d9df4d --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/mangrove.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/mangrove_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/mangrove_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/mangrove_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/mangrove_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/maple.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/maple.json new file mode 100644 index 00000000..13bf6eb8 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/maple.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/maple_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/maple_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/maple_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/maple_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/oak.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/oak.json new file mode 100644 index 00000000..06942390 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/oak.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/oak_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/oak_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/oak_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/oak_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/palm.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/palm.json new file mode 100644 index 00000000..a88638c0 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/palm.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/palm_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/palm_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/palm_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/palm_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/pine.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/pine.json new file mode 100644 index 00000000..d83d1202 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/pine.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/pine_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/pine_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/pine_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/pine_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/rosewood.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/rosewood.json new file mode 100644 index 00000000..f956c15b --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/rosewood.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/rosewood_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/rosewood_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/rosewood_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/rosewood_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/sequoia.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/sequoia.json new file mode 100644 index 00000000..7f7cf60b --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/sequoia.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/sequoia_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/sequoia_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/sequoia_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/sequoia_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/spruce.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/spruce.json new file mode 100644 index 00000000..fa0f38ec --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/spruce.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/spruce_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/spruce_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/spruce_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/spruce_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/sycamore.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/sycamore.json new file mode 100644 index 00000000..e19fa854 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/sycamore.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/sycamore_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/sycamore_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/sycamore_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/sycamore_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/white_cedar.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/white_cedar.json new file mode 100644 index 00000000..e9fe655a --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/white_cedar.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/white_cedar_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/white_cedar_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/white_cedar_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/white_cedar_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/willow.json b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/willow.json new file mode 100644 index 00000000..c6fb53f8 --- /dev/null +++ b/src/main/resources/assets/firmalife/blockstates/wood/wine_shelf/willow.json @@ -0,0 +1,20 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "variants": { + "facing=east": { + "model": "firmalife:block/wood/wine_shelf/willow_dynamic", + "y": 90 + }, + "facing=north": { + "model": "firmalife:block/wood/wine_shelf/willow_dynamic" + }, + "facing=south": { + "model": "firmalife:block/wood/wine_shelf/willow_dynamic", + "y": 180 + }, + "facing=west": { + "model": "firmalife:block/wood/wine_shelf/willow_dynamic", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/lang/de_de.json b/src/main/resources/assets/firmalife/lang/de_de.json index e49cc4b4..df4fe9ce 100644 --- a/src/main/resources/assets/firmalife/lang/de_de.json +++ b/src/main/resources/assets/firmalife/lang/de_de.json @@ -322,82 +322,102 @@ "block.firmalife.wood.hanger.acacia": "Akazien Aufhänger", "block.firmalife.wood.jarbnet.acacia": "Akazien Marmeladenschrank", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "Eschen Essensregal", "block.firmalife.wood.hanger.ash": "Eschen Aufhänger", "block.firmalife.wood.jarbnet.ash": "Eschen Marmeladenschrank", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "Espen Essensregal", "block.firmalife.wood.hanger.aspen": "Espen Aufhänger", "block.firmalife.wood.jarbnet.aspen": "Espen Marmeladenschrank", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "Birken Essensregal", "block.firmalife.wood.hanger.birch": "Birken Aufhänger", "block.firmalife.wood.jarbnet.birch": "Birken Marmeladenschrank", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "Schwarzholz Essensregal", "block.firmalife.wood.hanger.blackwood": "Schwarzholz Aufhänger", "block.firmalife.wood.jarbnet.blackwood": "Schwarzholz Marmeladenschrank", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "Kastanien Essensregal", "block.firmalife.wood.hanger.chestnut": "Kastanien Aufhänger", "block.firmalife.wood.jarbnet.chestnut": "Kastanien Marmeladenschrank", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "Douglasien Essensregal", "block.firmalife.wood.hanger.douglas_fir": "Douglasien Aufhänger", "block.firmalife.wood.jarbnet.douglas_fir": "Douglasien Marmeladenschrank", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "Nussbaum Essensregal", "block.firmalife.wood.hanger.hickory": "Nussbaum Aufhänger", "block.firmalife.wood.jarbnet.hickory": "Nussbaum Marmeladenschrank", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "Kapok Essensregal", "block.firmalife.wood.hanger.kapok": "Kapok Aufhänger", "block.firmalife.wood.jarbnet.kapok": "Kapok Marmeladenschrank", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "Mangrove Food Shelf", "block.firmalife.wood.hanger.mangrove": "Mangrove Hanger", "block.firmalife.wood.jarbnet.mangrove": "Mangrove Jarbnet", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "Ahorn Essensregal", "block.firmalife.wood.hanger.maple": "Ahorn Aufhänger", "block.firmalife.wood.jarbnet.maple": "Ahorn Marmeladenschrank", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "Eichen Essensregal", "block.firmalife.wood.hanger.oak": "Eichen Aufhänger", "block.firmalife.wood.jarbnet.oak": "Eichen Marmeladenschrank", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "Palm Essensregal", "block.firmalife.wood.hanger.palm": "Palmen Aufhänger", "block.firmalife.wood.jarbnet.palm": "Palmen Marmeladenschrank", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "Kiefern Essensregal", "block.firmalife.wood.hanger.pine": "Kiefern Aufhänger", "block.firmalife.wood.jarbnet.pine": "Kiefern Marmeladenschrank", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "Palisander Essensregal", "block.firmalife.wood.hanger.rosewood": "Palisander Aufhänger", "block.firmalife.wood.jarbnet.rosewood": "Palisander Marmeladenschrank", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "Mammutbaum Essensregal", "block.firmalife.wood.hanger.sequoia": "Mammutbaum Aufhänger", "block.firmalife.wood.jarbnet.sequoia": "Mammutbaum Marmeladenschrank", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "Fichten Essensregal", "block.firmalife.wood.hanger.spruce": "Fichten Aufhänger", "block.firmalife.wood.jarbnet.spruce": "Fichten Marmeladenschrank", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "Platanen Essensregal", "block.firmalife.wood.hanger.sycamore": "Platanen Aufhänger", "block.firmalife.wood.jarbnet.sycamore": "Platanen Marmeladenschrank", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "Weißzedern Essensregal", "block.firmalife.wood.hanger.white_cedar": "Weißzedern Aufhänger", "block.firmalife.wood.jarbnet.white_cedar": "Weißzedern Marmeladenschrank", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "Weiden Essensregal", "block.firmalife.wood.hanger.willow": "Weiden Aufhänger", "block.firmalife.wood.jarbnet.willow": "Weiden Marmeladenschrank", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "Kakao Zweig", "block.firmalife.plant.cocoa_leaves": "Kakao Blätter", "block.firmalife.plant.cocoa_sapling": "Kakao Setzling", @@ -452,6 +472,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "Schaumige Kokosnuss", "item.firmalife.food.white_chocolate_blend": "Weiße Schokoladenmischung", "item.firmalife.food.dark_chocolate_blend": "Dunkle Schokoladenmischung", @@ -707,6 +731,11 @@ "firmalife.beehive.breed_chance_100": "Tägliche neue Bienen Wahrscheinlichkeit: Garantiert", "firmalife.beehive.honey_chance": "Tägliche Honig Wahrscheinlichkeit: 1 / %s", "firmalife.beehive.honey_chance_100": "Tägliche Honig Wahrscheinlichkeit: Garantiert", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Treated Wood", "greenhouse.firmalife.copper": "Copper", "greenhouse.firmalife.iron": "Iron", diff --git a/src/main/resources/assets/firmalife/lang/en_us.json b/src/main/resources/assets/firmalife/lang/en_us.json index ec74e25a..78678419 100644 --- a/src/main/resources/assets/firmalife/lang/en_us.json +++ b/src/main/resources/assets/firmalife/lang/en_us.json @@ -321,82 +321,102 @@ "block.firmalife.wood.hanger.acacia": "Acacia Hanger", "block.firmalife.wood.jarbnet.acacia": "Acacia Jarbnet", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "Ash Food Shelf", "block.firmalife.wood.hanger.ash": "Ash Hanger", "block.firmalife.wood.jarbnet.ash": "Ash Jarbnet", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "Aspen Food Shelf", "block.firmalife.wood.hanger.aspen": "Aspen Hanger", "block.firmalife.wood.jarbnet.aspen": "Aspen Jarbnet", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "Birch Food Shelf", "block.firmalife.wood.hanger.birch": "Birch Hanger", "block.firmalife.wood.jarbnet.birch": "Birch Jarbnet", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "Blackwood Food Shelf", "block.firmalife.wood.hanger.blackwood": "Blackwood Hanger", "block.firmalife.wood.jarbnet.blackwood": "Blackwood Jarbnet", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "Chestnut Food Shelf", "block.firmalife.wood.hanger.chestnut": "Chestnut Hanger", "block.firmalife.wood.jarbnet.chestnut": "Chestnut Jarbnet", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "Douglas Fir Food Shelf", "block.firmalife.wood.hanger.douglas_fir": "Douglas Fir Hanger", "block.firmalife.wood.jarbnet.douglas_fir": "Douglas Fir Jarbnet", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "Hickory Food Shelf", "block.firmalife.wood.hanger.hickory": "Hickory Hanger", "block.firmalife.wood.jarbnet.hickory": "Hickory Jarbnet", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "Kapok Food Shelf", "block.firmalife.wood.hanger.kapok": "Kapok Hanger", "block.firmalife.wood.jarbnet.kapok": "Kapok Jarbnet", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "Mangrove Food Shelf", "block.firmalife.wood.hanger.mangrove": "Mangrove Hanger", "block.firmalife.wood.jarbnet.mangrove": "Mangrove Jarbnet", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "Maple Food Shelf", "block.firmalife.wood.hanger.maple": "Maple Hanger", "block.firmalife.wood.jarbnet.maple": "Maple Jarbnet", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "Oak Food Shelf", "block.firmalife.wood.hanger.oak": "Oak Hanger", "block.firmalife.wood.jarbnet.oak": "Oak Jarbnet", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "Palm Food Shelf", "block.firmalife.wood.hanger.palm": "Palm Hanger", "block.firmalife.wood.jarbnet.palm": "Palm Jarbnet", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "Pine Food Shelf", "block.firmalife.wood.hanger.pine": "Pine Hanger", "block.firmalife.wood.jarbnet.pine": "Pine Jarbnet", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "Rosewood Food Shelf", "block.firmalife.wood.hanger.rosewood": "Rosewood Hanger", "block.firmalife.wood.jarbnet.rosewood": "Rosewood Jarbnet", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "Sequoia Food Shelf", "block.firmalife.wood.hanger.sequoia": "Sequoia Hanger", "block.firmalife.wood.jarbnet.sequoia": "Sequoia Jarbnet", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "Spruce Food Shelf", "block.firmalife.wood.hanger.spruce": "Spruce Hanger", "block.firmalife.wood.jarbnet.spruce": "Spruce Jarbnet", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "Sycamore Food Shelf", "block.firmalife.wood.hanger.sycamore": "Sycamore Hanger", "block.firmalife.wood.jarbnet.sycamore": "Sycamore Jarbnet", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "White Cedar Food Shelf", "block.firmalife.wood.hanger.white_cedar": "White Cedar Hanger", "block.firmalife.wood.jarbnet.white_cedar": "White Cedar Jarbnet", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "Willow Food Shelf", "block.firmalife.wood.hanger.willow": "Willow Hanger", "block.firmalife.wood.jarbnet.willow": "Willow Jarbnet", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "Cocoa Branch", "block.firmalife.plant.cocoa_leaves": "Cocoa Leaves", "block.firmalife.plant.cocoa_sapling": "Cocoa Sapling", @@ -451,6 +471,11 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", + "item.firmalife.bottle_label": "Bottle Label", "item.firmalife.food.frothy_coconut": "Frothy Coconut", "item.firmalife.food.white_chocolate_blend": "White Chocolate Blend", "item.firmalife.food.dark_chocolate_blend": "Dark Chocolate Blend", @@ -706,6 +731,11 @@ "firmalife.beehive.breed_chance_100": "Daily New Bee Chance: Guaranteed", "firmalife.beehive.honey_chance": "Daily Honey Chance: 1 / %s", "firmalife.beehive.honey_chance_100": "Daily Honey Chance: Guaranteed", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Treated Wood", "greenhouse.firmalife.copper": "Copper", "greenhouse.firmalife.iron": "Iron", diff --git a/src/main/resources/assets/firmalife/lang/ja_jp.json b/src/main/resources/assets/firmalife/lang/ja_jp.json index 85859898..3410fd8e 100644 --- a/src/main/resources/assets/firmalife/lang/ja_jp.json +++ b/src/main/resources/assets/firmalife/lang/ja_jp.json @@ -321,82 +321,102 @@ "block.firmalife.wood.hanger.acacia": "アカシアの吊るし棚", "block.firmalife.wood.jarbnet.acacia": "アカシアの収納棚", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "トネリコの食品棚", "block.firmalife.wood.hanger.ash": "トネリコの吊るし棚", "block.firmalife.wood.jarbnet.ash": "トネリコの収納棚", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "ポプラの食品棚", "block.firmalife.wood.hanger.aspen": "ポプラの吊るし棚", "block.firmalife.wood.jarbnet.aspen": "ポプラの収納棚", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "シラカバの食品棚", "block.firmalife.wood.hanger.birch": "シラカバの吊るし棚", "block.firmalife.wood.jarbnet.birch": "シラカバの収納棚", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "ブラックウッドの食品棚", "block.firmalife.wood.hanger.blackwood": "ブラックウッドの吊るし棚", "block.firmalife.wood.jarbnet.blackwood": "ブラックウッドの収納棚", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "トチノキの食品棚", "block.firmalife.wood.hanger.chestnut": "トチノキの吊るし棚", "block.firmalife.wood.jarbnet.chestnut": "トチノキの収納棚", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "ベイマツの食品棚", "block.firmalife.wood.hanger.douglas_fir": "ベイマツの吊るし棚", "block.firmalife.wood.jarbnet.douglas_fir": "ベイマツの収納棚", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "ヒッコリーの食品棚", "block.firmalife.wood.hanger.hickory": "ヒッコリーの吊るし棚", "block.firmalife.wood.jarbnet.hickory": "ヒッコリーの収納棚", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "カポックの食品棚", "block.firmalife.wood.hanger.kapok": "カポックの吊るし棚", "block.firmalife.wood.jarbnet.kapok": "カポックの収納棚", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "マングローブの食品棚", "block.firmalife.wood.hanger.mangrove": "マングローブの吊るし棚", "block.firmalife.wood.jarbnet.mangrove": "マングローブの収納棚", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "カエデの食品棚", "block.firmalife.wood.hanger.maple": "カエデの吊るし棚", "block.firmalife.wood.jarbnet.maple": "カエデの収納棚", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "オークの食品棚", "block.firmalife.wood.hanger.oak": "オークの吊るし棚", "block.firmalife.wood.jarbnet.oak": "オークの収納棚", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "ヤシの食品棚", "block.firmalife.wood.hanger.palm": "ヤシの吊るし棚", "block.firmalife.wood.jarbnet.palm": "ヤシの収納棚", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "マツの食品棚", "block.firmalife.wood.hanger.pine": "マツの吊るし棚", "block.firmalife.wood.jarbnet.pine": "マツの収納棚", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "ローズウッドの食品棚", "block.firmalife.wood.hanger.rosewood": "ローズウッドの吊るし棚", "block.firmalife.wood.jarbnet.rosewood": "ローズウッドの収納棚", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "セコイアの食品棚", "block.firmalife.wood.hanger.sequoia": "セコイアの吊るし棚", "block.firmalife.wood.jarbnet.sequoia": "セコイアの収納棚", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "トウヒの食品棚", "block.firmalife.wood.hanger.spruce": "トウヒの吊るし棚", "block.firmalife.wood.jarbnet.spruce": "トウヒの収納棚", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "スズカケノキの食品棚", "block.firmalife.wood.hanger.sycamore": "スズカケノキの吊るし棚", "block.firmalife.wood.jarbnet.sycamore": "スズカケノキの収納棚", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "ホワイトシダーの食品棚", "block.firmalife.wood.hanger.white_cedar": "ホワイトシダーの吊るし棚", "block.firmalife.wood.jarbnet.white_cedar": "ホワイトシダーの収納棚", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "ヤナギの食品棚", "block.firmalife.wood.hanger.willow": "ヤナギの吊るし棚", "block.firmalife.wood.jarbnet.willow": "ヤナギの収納棚", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "ココアの木", "block.firmalife.plant.cocoa_leaves": "ココアの葉", "block.firmalife.plant.cocoa_sapling": "ココアの苗木", @@ -451,6 +471,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "ココナッツ", "item.firmalife.food.white_chocolate_blend": "ホワイトチョコレートブレンド", "item.firmalife.food.dark_chocolate_blend": "ダークチョコレートブレンド", @@ -706,6 +730,11 @@ "firmalife.beehive.breed_chance_100": "日ごとの蜂が入る確率:保証", "firmalife.beehive.honey_chance": "日ごとの蜂蜜が溜まる確率:1 / %s", "firmalife.beehive.honey_chance_100": "日ごとの蜂蜜が溜まる確率:保証", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "加工木材", "greenhouse.firmalife.copper": "銅", "greenhouse.firmalife.iron": "鉄", diff --git a/src/main/resources/assets/firmalife/lang/ko_kr.json b/src/main/resources/assets/firmalife/lang/ko_kr.json index 3d601804..cd8b8bda 100644 --- a/src/main/resources/assets/firmalife/lang/ko_kr.json +++ b/src/main/resources/assets/firmalife/lang/ko_kr.json @@ -320,82 +320,102 @@ "block.firmalife.wood.hanger.acacia": "아카시아나무 걸이", "block.firmalife.wood.jarbnet.acacia": "Acacia Jarbnet", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "물푸레나무 식품 선반", "block.firmalife.wood.hanger.ash": "물푸레나무 걸이", "block.firmalife.wood.jarbnet.ash": "Ash Jarbnet", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "사시나무 식품 선반", "block.firmalife.wood.hanger.aspen": "사시나무 걸이", "block.firmalife.wood.jarbnet.aspen": "Aspen Jarbnet", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "자작나무 식품 선반", "block.firmalife.wood.hanger.birch": "자작나무 걸이", "block.firmalife.wood.jarbnet.birch": "Birch Jarbnet", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "흑단 식품 선반", "block.firmalife.wood.hanger.blackwood": "흑단 걸이", "block.firmalife.wood.jarbnet.blackwood": "Blackwood Jarbnet", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "밤나무 식품 선반", "block.firmalife.wood.hanger.chestnut": "밤나무 걸이", "block.firmalife.wood.jarbnet.chestnut": "Chestnut Jarbnet", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "더글러스 전나무 식품 선반", "block.firmalife.wood.hanger.douglas_fir": "더글러스 전나무 걸이", "block.firmalife.wood.jarbnet.douglas_fir": "Douglas Fir Jarbnet", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "히코리나무 식품 선반", "block.firmalife.wood.hanger.hickory": "히코리나무 걸이", "block.firmalife.wood.jarbnet.hickory": "Hickory Jarbnet", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "케이폭나무 식품 선반", "block.firmalife.wood.hanger.kapok": "케이폭나무 걸이", "block.firmalife.wood.jarbnet.kapok": "Kapok Jarbnet", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "Mangrove Food Shelf", "block.firmalife.wood.hanger.mangrove": "Mangrove Hanger", "block.firmalife.wood.jarbnet.mangrove": "Mangrove Jarbnet", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "단풍나무 식품 선반", "block.firmalife.wood.hanger.maple": "단풍나무 걸이", "block.firmalife.wood.jarbnet.maple": "Maple Jarbnet", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "참나무 식품 선반", "block.firmalife.wood.hanger.oak": "참나무 걸이", "block.firmalife.wood.jarbnet.oak": "Oak Jarbnet", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "야자수 식품 선반", "block.firmalife.wood.hanger.palm": "야자수 걸이", "block.firmalife.wood.jarbnet.palm": "Palm Jarbnet", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "소나무 식품 선반", "block.firmalife.wood.hanger.pine": "소나무 걸이", "block.firmalife.wood.jarbnet.pine": "Pine Jarbnet", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "자단나무 식품 선반", "block.firmalife.wood.hanger.rosewood": "자단나무 걸이", "block.firmalife.wood.jarbnet.rosewood": "Rosewood Jarbnet", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "세쿼이아나무 식품 선반", "block.firmalife.wood.hanger.sequoia": "세쿼이아나무 걸이", "block.firmalife.wood.jarbnet.sequoia": "Sequoia Jarbnet", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "가문비나무 식품 선반", "block.firmalife.wood.hanger.spruce": "가문비나무 걸이", "block.firmalife.wood.jarbnet.spruce": "Spruce Jarbnet", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "돌무화과나무 식품 선반", "block.firmalife.wood.hanger.sycamore": "돌무화과나무 걸이", "block.firmalife.wood.jarbnet.sycamore": "Sycamore Jarbnet", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "서양측백나무 식품 선반", "block.firmalife.wood.hanger.white_cedar": "서양측백나무 걸이", "block.firmalife.wood.jarbnet.white_cedar": "White Cedar Jarbnet", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "버드나무 식품 선반", "block.firmalife.wood.hanger.willow": "버드나무 걸이", "block.firmalife.wood.jarbnet.willow": "Willow Jarbnet", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "코코아나무 가지", "block.firmalife.plant.cocoa_leaves": "코코아나무 잎", "block.firmalife.plant.cocoa_sapling": "코코아나무 묘목", @@ -450,6 +470,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "거품 코코넛", "item.firmalife.food.white_chocolate_blend": "화이트 초콜릿 블렌드", "item.firmalife.food.dark_chocolate_blend": "다크 초콜릿 블렌드", @@ -705,6 +729,11 @@ "firmalife.beehive.breed_chance_100": "매일 새 꿀벌 탄생: 무조건", "firmalife.beehive.honey_chance": "매일 꿀 생산 확률: 1 / %s", "firmalife.beehive.honey_chance_100": "매일 꿀 생산 확률: 무조건", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Treated Wood", "greenhouse.firmalife.copper": "Copper", "greenhouse.firmalife.iron": "Iron", diff --git a/src/main/resources/assets/firmalife/lang/ru_ru.json b/src/main/resources/assets/firmalife/lang/ru_ru.json index 93ef1fd9..fdfb8702 100644 --- a/src/main/resources/assets/firmalife/lang/ru_ru.json +++ b/src/main/resources/assets/firmalife/lang/ru_ru.json @@ -326,82 +326,102 @@ "block.firmalife.wood.hanger.acacia": "Вешалка из акации", "block.firmalife.wood.jarbnet.acacia": "Шкафчик из акации", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "Полка для еды из ясеня", "block.firmalife.wood.hanger.ash": "Вешалка из ясеня", "block.firmalife.wood.jarbnet.ash": "Шкафчик из ясеня", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "Полка для еды из осины", "block.firmalife.wood.hanger.aspen": "Вешалка из осины", "block.firmalife.wood.jarbnet.aspen": "Шкафчик из осины", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "Полка для еды из берёзы", "block.firmalife.wood.hanger.birch": "Вешалка из берёзы", "block.firmalife.wood.jarbnet.birch": "Шкафчик из берёзы", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "Полка для еды из гренадила", "block.firmalife.wood.hanger.blackwood": "Вешалка из гренадила", "block.firmalife.wood.jarbnet.blackwood": "Шкафчик из гренадила", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "Полка для еды из каштана", "block.firmalife.wood.hanger.chestnut": "Вешалка из каштана", "block.firmalife.wood.jarbnet.chestnut": "Шкафчик из каштана", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "Полка для еды из дугласовой пихты", "block.firmalife.wood.hanger.douglas_fir": "Вешалка из дугласовой пихты", "block.firmalife.wood.jarbnet.douglas_fir": "Шкафчик из дугласовой пихты", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "Полка для еды из ореха", "block.firmalife.wood.hanger.hickory": "Вешалка из ореха", "block.firmalife.wood.jarbnet.hickory": "Шкафчик из ореха", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "Полка для еды из сейбы", "block.firmalife.wood.hanger.kapok": "Вешалка из сейбы", "block.firmalife.wood.jarbnet.kapok": "Шкафчик из сейбы", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "Mangrove Food Shelf", "block.firmalife.wood.hanger.mangrove": "Mangrove Hanger", "block.firmalife.wood.jarbnet.mangrove": "Mangrove Jarbnet", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "Полка для еды из клёна", "block.firmalife.wood.hanger.maple": "Вешалка из клёна", "block.firmalife.wood.jarbnet.maple": "Шкафчик из клёна", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "Полка для еды из дуба", "block.firmalife.wood.hanger.oak": "Вешалка из дуба", "block.firmalife.wood.jarbnet.oak": "Шкафчик из дуба", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "Полка для еды из пальмы", "block.firmalife.wood.hanger.palm": "Вешалка из пальмы", "block.firmalife.wood.jarbnet.palm": "Шкафчик из пальмы", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "Полка для еды из сосны", "block.firmalife.wood.hanger.pine": "Вешалка из сосны", "block.firmalife.wood.jarbnet.pine": "Шкафчик из сосны", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "Полка для еды из палисандра", "block.firmalife.wood.hanger.rosewood": "Вешалка из палисандра", "block.firmalife.wood.jarbnet.rosewood": "Шкафчик из палисандра", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "Полка для еды из секвойи", "block.firmalife.wood.hanger.sequoia": "Вешалка из секвойи", "block.firmalife.wood.jarbnet.sequoia": "Шкафчик из секвойи", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "Полка для еды из ели", "block.firmalife.wood.hanger.spruce": "Вешалка из ели", "block.firmalife.wood.jarbnet.spruce": "Шкафчик из ели", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "Полка для еды из платана", "block.firmalife.wood.hanger.sycamore": "Вешалка из платана", "block.firmalife.wood.jarbnet.sycamore": "Шкафчик из платана", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "Полка для еды из белого кедра", "block.firmalife.wood.hanger.white_cedar": "Вешалка из белого кедра", "block.firmalife.wood.jarbnet.white_cedar": "Шкафчик из белого кедра", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "Полка для еды из ивы", "block.firmalife.wood.hanger.willow": "Вешалка из ивы", "block.firmalife.wood.jarbnet.willow": "Шкафчик из ивы", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "Ветвь какао", "block.firmalife.plant.cocoa_leaves": "Листья какао", "block.firmalife.plant.cocoa_sapling": "Саженец какао", @@ -456,6 +476,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "Освежающая ананасовая мякоть", "item.firmalife.food.white_chocolate_blend": "Смесь для белого шоколада", "item.firmalife.food.dark_chocolate_blend": "Смесь для тёмного шоколада", @@ -711,6 +735,11 @@ "firmalife.beehive.breed_chance_100": "Ежедневный шанс на новую пчелу: Гарантирован", "firmalife.beehive.honey_chance": "Ежедневный шанс на мёд: 1 / %s", "firmalife.beehive.honey_chance_100": "Ежедневный шанс на мёд: Гарантирован", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Treated Wood", "greenhouse.firmalife.copper": "Copper", "greenhouse.firmalife.iron": "Iron", diff --git a/src/main/resources/assets/firmalife/lang/uk_ua.json b/src/main/resources/assets/firmalife/lang/uk_ua.json index 3cf5818b..a8537233 100644 --- a/src/main/resources/assets/firmalife/lang/uk_ua.json +++ b/src/main/resources/assets/firmalife/lang/uk_ua.json @@ -321,82 +321,102 @@ "block.firmalife.wood.hanger.acacia": "Вішалка з акації", "block.firmalife.wood.jarbnet.acacia": "Шафка з акації", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "Продуктова полиця з ясену", "block.firmalife.wood.hanger.ash": "Вішалка з ясену", "block.firmalife.wood.jarbnet.ash": "Шафка з ясену", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "Продуктова полиця з осики", "block.firmalife.wood.hanger.aspen": "Вішалка з осики", "block.firmalife.wood.jarbnet.aspen": "Шафка з осики", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "Продуктова полиця з берези", "block.firmalife.wood.hanger.birch": "Вішалка з берези", "block.firmalife.wood.jarbnet.birch": "Шафка з берези", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "Продуктова полиця з гебану", "block.firmalife.wood.hanger.blackwood": "Вішалка з гебану", "block.firmalife.wood.jarbnet.blackwood": "Шафка з гебану", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "Продуктова полиця з каштана", "block.firmalife.wood.hanger.chestnut": "Вішалка з каштана", "block.firmalife.wood.jarbnet.chestnut": "Шафка з каштана", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "Продуктова полиця з ялиці дугласа", "block.firmalife.wood.hanger.douglas_fir": "Вішалка з ялиці дугласа", "block.firmalife.wood.jarbnet.douglas_fir": "Шафка з ялиці дугласа", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "Продуктова полиця з горіха", "block.firmalife.wood.hanger.hickory": "Вішалка з горіха", "block.firmalife.wood.jarbnet.hickory": "Шафка з горіха", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "Продуктова полиця з бавовняного дерева", "block.firmalife.wood.hanger.kapok": "Вішалка з бавовняного дерева", "block.firmalife.wood.jarbnet.kapok": "Шафка з бавовняного дерева", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "Mangrove Food Shelf", "block.firmalife.wood.hanger.mangrove": "Mangrove Hanger", "block.firmalife.wood.jarbnet.mangrove": "Mangrove Jarbnet", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "Продуктова полиця з клену", "block.firmalife.wood.hanger.maple": "Вішалка з клену", "block.firmalife.wood.jarbnet.maple": "Шафка з клену", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "Продуктова полиця з дубу", "block.firmalife.wood.hanger.oak": "Вішалка з дубу", "block.firmalife.wood.jarbnet.oak": "Шафка з дубу", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "Продуктова полиця з пальми", "block.firmalife.wood.hanger.palm": "Вішалка з пальми", "block.firmalife.wood.jarbnet.palm": "Шафка з пальми", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "Продуктова полиця з сосни", "block.firmalife.wood.hanger.pine": "Вішалка з сосни", "block.firmalife.wood.jarbnet.pine": "Шафка з сосни", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "Продуктова полиця з трояндового дерева", "block.firmalife.wood.hanger.rosewood": "Вішалка з трояндового дерева", "block.firmalife.wood.jarbnet.rosewood": "Шафка з трояндового дерева", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "Продуктова полиця з секвої", "block.firmalife.wood.hanger.sequoia": "Вішалка з секвої", "block.firmalife.wood.jarbnet.sequoia": "Шафка з секвої", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "Продуктова полиця з ялини", "block.firmalife.wood.hanger.spruce": "Вішалка з ялини", "block.firmalife.wood.jarbnet.spruce": "Шафка з ялини", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "Продуктова полиця з платану", "block.firmalife.wood.hanger.sycamore": "Вішалка з платану", "block.firmalife.wood.jarbnet.sycamore": "Шафка з платану", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "Продуктова полиця з білого кедра", "block.firmalife.wood.hanger.white_cedar": "Вішалка з білого кедра", "block.firmalife.wood.jarbnet.white_cedar": "Шафка з білого кедра", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "Продуктова полиця з верби", "block.firmalife.wood.hanger.willow": "Вішалка з верби", "block.firmalife.wood.jarbnet.willow": "Шафка з верби", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "Гілка какао", "block.firmalife.plant.cocoa_leaves": "Листя какао", "block.firmalife.plant.cocoa_sapling": "Паросток какао", @@ -451,6 +471,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "Кокосовий м'якуш", "item.firmalife.food.white_chocolate_blend": "Суміш для білого шоколаду", "item.firmalife.food.dark_chocolate_blend": "Суміш для темного шоколаду", @@ -706,6 +730,11 @@ "firmalife.beehive.breed_chance_100": "Щоденний шанс на нову бджолу: гарантовано", "firmalife.beehive.honey_chance": "Щоденний шанс на мед: 1 / %s", "firmalife.beehive.honey_chance_100": "Щоденний шанс на мед: гарантовано", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Оброблена деревина", "greenhouse.firmalife.copper": "Мідь", "greenhouse.firmalife.iron": "Залізо", diff --git a/src/main/resources/assets/firmalife/lang/zh_cn.json b/src/main/resources/assets/firmalife/lang/zh_cn.json index 04afa604..6dc49124 100644 --- a/src/main/resources/assets/firmalife/lang/zh_cn.json +++ b/src/main/resources/assets/firmalife/lang/zh_cn.json @@ -328,82 +328,102 @@ "block.firmalife.wood.hanger.acacia": "金合欢木悬挂架", "block.firmalife.wood.jarbnet.acacia": "金合欢罐头柜", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "黑梣木食物架", "block.firmalife.wood.hanger.ash": "黑梣木悬挂架", "block.firmalife.wood.jarbnet.ash": "黑梣木罐头柜", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "山杨木食物架", "block.firmalife.wood.hanger.aspen": "山杨木悬挂架", "block.firmalife.wood.jarbnet.aspen": "山杨木罐头柜", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "白桦木食物架", "block.firmalife.wood.hanger.birch": "白桦木悬挂架", "block.firmalife.wood.jarbnet.birch": "白桦木罐头柜", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "黑檀木食物架", "block.firmalife.wood.hanger.blackwood": "黑檀木悬挂架", "block.firmalife.wood.jarbnet.blackwood": "黑檀木罐头柜", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "栗木食物架", "block.firmalife.wood.hanger.chestnut": "栗木悬挂架", "block.firmalife.wood.jarbnet.chestnut": "栗木罐头柜", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "花旗松木食物架", "block.firmalife.wood.hanger.douglas_fir": "花旗松木悬挂架", "block.firmalife.wood.jarbnet.douglas_fir": "花旗松木罐头柜", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "山核桃木食物架", "block.firmalife.wood.hanger.hickory": "山核桃木悬挂架", "block.firmalife.wood.jarbnet.hickory": "山核桃木罐头柜", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "木棉木食物架", "block.firmalife.wood.hanger.kapok": "木棉木悬挂架", "block.firmalife.wood.jarbnet.kapok": "木棉木罐头柜", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "红木食物橱架", "block.firmalife.wood.hanger.mangrove": "红木悬挂架", "block.firmalife.wood.jarbnet.mangrove": "红木罐头柜", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "枫木食物架", "block.firmalife.wood.hanger.maple": "枫木悬挂架", "block.firmalife.wood.jarbnet.maple": "枫木罐头柜", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "橡木食物架", "block.firmalife.wood.hanger.oak": "橡木悬挂架", "block.firmalife.wood.jarbnet.oak": "橡木罐头柜", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "棕榈木食物架", "block.firmalife.wood.hanger.palm": "棕榈木悬挂架", "block.firmalife.wood.jarbnet.palm": "棕榈木罐头柜", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "松木食物架", "block.firmalife.wood.hanger.pine": "松木悬挂架", "block.firmalife.wood.jarbnet.pine": "松木罐头柜", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "蔷薇木食物架", "block.firmalife.wood.hanger.rosewood": "蔷薇木悬挂架", "block.firmalife.wood.jarbnet.rosewood": "蔷薇木罐头柜", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "红杉木食物架", "block.firmalife.wood.hanger.sequoia": "红杉木悬挂架", "block.firmalife.wood.jarbnet.sequoia": "红杉木罐头柜", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "云杉木食物架", "block.firmalife.wood.hanger.spruce": "云杉木悬挂架", "block.firmalife.wood.jarbnet.spruce": "云杉木罐头柜", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "悬铃木食物架", "block.firmalife.wood.hanger.sycamore": "悬铃木悬挂架", "block.firmalife.wood.jarbnet.sycamore": "悬铃木罐头柜", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "白雪松木食物架", "block.firmalife.wood.hanger.white_cedar": "白雪松木悬挂架", "block.firmalife.wood.jarbnet.white_cedar": "白雪松木罐头柜", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "柳木食物架", "block.firmalife.wood.hanger.willow": "柳木悬挂架", "block.firmalife.wood.jarbnet.willow": "柳木罐头柜", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "可可树树枝", "block.firmalife.plant.cocoa_leaves": "可可树树叶", "block.firmalife.plant.cocoa_sapling": "可可树树苗", @@ -458,6 +478,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "泡沫椰子", "item.firmalife.food.white_chocolate_blend": "白巧克力糊", "item.firmalife.food.dark_chocolate_blend": "黑巧克力糊", @@ -713,6 +737,11 @@ "firmalife.beehive.breed_chance_100": "每天配种概率: 一定会", "firmalife.beehive.honey_chance": "每天产蜜概率: 1 / %s", "firmalife.beehive.honey_chance_100": "每天产蜜概率: 一定会", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Treated Wood", "greenhouse.firmalife.copper": "Copper", "greenhouse.firmalife.iron": "Iron", diff --git a/src/main/resources/assets/firmalife/lang/zh_tw.json b/src/main/resources/assets/firmalife/lang/zh_tw.json index 21498571..60b93f4a 100644 --- a/src/main/resources/assets/firmalife/lang/zh_tw.json +++ b/src/main/resources/assets/firmalife/lang/zh_tw.json @@ -323,82 +323,102 @@ "block.firmalife.wood.hanger.acacia": "金合歡木懸掛架", "block.firmalife.wood.jarbnet.acacia": "金合歡罐頭櫃", "block.firmalife.wood.big_barrel.acacia": "Acacia Keg", + "block.firmalife.wood.wine_shelf.acacia": "Acacia Wine Shelf", "block.firmalife.wood.food_shelf.ash": "黑梣木食物架", "block.firmalife.wood.hanger.ash": "黑梣木懸掛架", "block.firmalife.wood.jarbnet.ash": "黑梣木罐頭櫃", "block.firmalife.wood.big_barrel.ash": "Ash Keg", + "block.firmalife.wood.wine_shelf.ash": "Ash Wine Shelf", "block.firmalife.wood.food_shelf.aspen": "山楊木食物架", "block.firmalife.wood.hanger.aspen": "山楊木懸掛架", "block.firmalife.wood.jarbnet.aspen": "山楊木罐頭櫃", "block.firmalife.wood.big_barrel.aspen": "Aspen Keg", + "block.firmalife.wood.wine_shelf.aspen": "Aspen Wine Shelf", "block.firmalife.wood.food_shelf.birch": "白樺木食物架", "block.firmalife.wood.hanger.birch": "白樺木懸掛架", "block.firmalife.wood.jarbnet.birch": "白樺木罐頭櫃", "block.firmalife.wood.big_barrel.birch": "Birch Keg", + "block.firmalife.wood.wine_shelf.birch": "Birch Wine Shelf", "block.firmalife.wood.food_shelf.blackwood": "黑檀木食物架", "block.firmalife.wood.hanger.blackwood": "黑檀木懸掛架", "block.firmalife.wood.jarbnet.blackwood": "黑檀木罐頭櫃", "block.firmalife.wood.big_barrel.blackwood": "Blackwood Keg", + "block.firmalife.wood.wine_shelf.blackwood": "Blackwood Wine Shelf", "block.firmalife.wood.food_shelf.chestnut": "慄木食物架", "block.firmalife.wood.hanger.chestnut": "慄木懸掛架", "block.firmalife.wood.jarbnet.chestnut": "慄木罐頭櫃", "block.firmalife.wood.big_barrel.chestnut": "Chestnut Keg", + "block.firmalife.wood.wine_shelf.chestnut": "Chestnut Wine Shelf", "block.firmalife.wood.food_shelf.douglas_fir": "花旗松木食物架", "block.firmalife.wood.hanger.douglas_fir": "花旗松木懸掛架", "block.firmalife.wood.jarbnet.douglas_fir": "花旗松木罐頭櫃", "block.firmalife.wood.big_barrel.douglas_fir": "Douglas Fir Keg", + "block.firmalife.wood.wine_shelf.douglas_fir": "Douglas Fir Wine Shelf", "block.firmalife.wood.food_shelf.hickory": "山核桃木食物架", "block.firmalife.wood.hanger.hickory": "山核桃木懸掛架", "block.firmalife.wood.jarbnet.hickory": "山核桃木罐頭櫃", "block.firmalife.wood.big_barrel.hickory": "Hickory Keg", + "block.firmalife.wood.wine_shelf.hickory": "Hickory Wine Shelf", "block.firmalife.wood.food_shelf.kapok": "木棉木食物架", "block.firmalife.wood.hanger.kapok": "木棉木懸掛架", "block.firmalife.wood.jarbnet.kapok": "木棉木罐頭櫃", "block.firmalife.wood.big_barrel.kapok": "Kapok Keg", + "block.firmalife.wood.wine_shelf.kapok": "Kapok Wine Shelf", "block.firmalife.wood.food_shelf.mangrove": "Mangrove Food Shelf", "block.firmalife.wood.hanger.mangrove": "Mangrove Hanger", "block.firmalife.wood.jarbnet.mangrove": "Mangrove Jarbnet", "block.firmalife.wood.big_barrel.mangrove": "Mangrove Keg", + "block.firmalife.wood.wine_shelf.mangrove": "Mangrove Wine Shelf", "block.firmalife.wood.food_shelf.maple": "楓木食物架", "block.firmalife.wood.hanger.maple": "楓木懸掛架", "block.firmalife.wood.jarbnet.maple": "楓木罐頭櫃", "block.firmalife.wood.big_barrel.maple": "Maple Keg", + "block.firmalife.wood.wine_shelf.maple": "Maple Wine Shelf", "block.firmalife.wood.food_shelf.oak": "橡木食物架", "block.firmalife.wood.hanger.oak": "橡木懸掛架", "block.firmalife.wood.jarbnet.oak": "橡木罐頭櫃", "block.firmalife.wood.big_barrel.oak": "Oak Keg", + "block.firmalife.wood.wine_shelf.oak": "Oak Wine Shelf", "block.firmalife.wood.food_shelf.palm": "棕櫚木食物架", "block.firmalife.wood.hanger.palm": "棕櫚木懸掛架", "block.firmalife.wood.jarbnet.palm": "棕櫚木罐頭櫃", "block.firmalife.wood.big_barrel.palm": "Palm Keg", + "block.firmalife.wood.wine_shelf.palm": "Palm Wine Shelf", "block.firmalife.wood.food_shelf.pine": "松木食物架", "block.firmalife.wood.hanger.pine": "松木懸掛架", "block.firmalife.wood.jarbnet.pine": "松木罐頭櫃", "block.firmalife.wood.big_barrel.pine": "Pine Keg", + "block.firmalife.wood.wine_shelf.pine": "Pine Wine Shelf", "block.firmalife.wood.food_shelf.rosewood": "薔薇木食物架", "block.firmalife.wood.hanger.rosewood": "薔薇木懸掛架", "block.firmalife.wood.jarbnet.rosewood": "薔薇木罐頭櫃", "block.firmalife.wood.big_barrel.rosewood": "Rosewood Keg", + "block.firmalife.wood.wine_shelf.rosewood": "Rosewood Wine Shelf", "block.firmalife.wood.food_shelf.sequoia": "紅杉木食物架", "block.firmalife.wood.hanger.sequoia": "紅杉木懸掛架", "block.firmalife.wood.jarbnet.sequoia": "紅杉木罐頭櫃", "block.firmalife.wood.big_barrel.sequoia": "Sequoia Keg", + "block.firmalife.wood.wine_shelf.sequoia": "Sequoia Wine Shelf", "block.firmalife.wood.food_shelf.spruce": "雲杉木食物架", "block.firmalife.wood.hanger.spruce": "雲杉木懸掛架", "block.firmalife.wood.jarbnet.spruce": "雲杉木罐頭櫃", "block.firmalife.wood.big_barrel.spruce": "Spruce Keg", + "block.firmalife.wood.wine_shelf.spruce": "Spruce Wine Shelf", "block.firmalife.wood.food_shelf.sycamore": "懸鈴木食物架", "block.firmalife.wood.hanger.sycamore": "懸鈴木懸掛架", "block.firmalife.wood.jarbnet.sycamore": "懸鈴木罐頭櫃", "block.firmalife.wood.big_barrel.sycamore": "Sycamore Keg", + "block.firmalife.wood.wine_shelf.sycamore": "Sycamore Wine Shelf", "block.firmalife.wood.food_shelf.white_cedar": "白雪松木食物架", "block.firmalife.wood.hanger.white_cedar": "白雪松木懸掛架", "block.firmalife.wood.jarbnet.white_cedar": "白雪松木罐頭櫃", "block.firmalife.wood.big_barrel.white_cedar": "White Cedar Keg", + "block.firmalife.wood.wine_shelf.white_cedar": "White Cedar Wine Shelf", "block.firmalife.wood.food_shelf.willow": "柳木食物架", "block.firmalife.wood.hanger.willow": "柳木懸掛架", "block.firmalife.wood.jarbnet.willow": "柳木罐頭櫃", "block.firmalife.wood.big_barrel.willow": "Willow Keg", + "block.firmalife.wood.wine_shelf.willow": "Willow Wine Shelf", "block.firmalife.plant.cocoa_branch": "可可樹樹枝", "block.firmalife.plant.cocoa_leaves": "可可樹樹葉", "block.firmalife.plant.cocoa_sapling": "可可樹樹苗", @@ -453,6 +473,10 @@ "item.firmalife.hematitic_wine_bottle": "Hematitic Wine Bottle", "item.firmalife.olivine_wine_bottle": "Olivine Wine Bottle", "item.firmalife.volcanic_wine_bottle": "Volcanic Wine Bottle", + "item.firmalife.empty_hematitic_wine_bottle": "Empty Hematitic Wine Bottle", + "item.firmalife.empty_olivine_wine_bottle": "Empty Olivine Wine Bottle", + "item.firmalife.empty_volcanic_wine_bottle": "Empty Volcanic Wine Bottle", + "item.firmalife.cork": "Cork", "item.firmalife.food.frothy_coconut": "泡沫椰子", "item.firmalife.food.white_chocolate_blend": "白巧克力糊", "item.firmalife.food.dark_chocolate_blend": "黑巧克力糊", @@ -708,6 +732,11 @@ "firmalife.beehive.breed_chance_100": "每天配種機率: 一定會", "firmalife.beehive.honey_chance": "每天產蜜機率: 1 / %s", "firmalife.beehive.honey_chance_100": "每天產蜜機率: 一定會", + "firmalife.wine.age_time": "Aging for: %s", + "firmalife.wine.age_time_opened": "Aged for: %s", + "firmalife.wine.sealed": "Sealed", + "firmalife.wine.unsealed": "Unsealed", + "firmalife.wine.how_to_open": "Right click with a knife to pop the cork.", "greenhouse.firmalife.treated_wood": "Treated Wood", "greenhouse.firmalife.copper": "Copper", "greenhouse.firmalife.iron": "Iron", diff --git a/src/main/resources/assets/firmalife/models/block/big_barrel_tap.json b/src/main/resources/assets/firmalife/models/block/big_barrel_tap.json deleted file mode 100644 index 22cee33e..00000000 --- a/src/main/resources/assets/firmalife/models/block/big_barrel_tap.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "13": "tfc:block/barrel_tap", - "particle": "firmalife:block/wood/big_barrel/sequoia_3_side" - }, - "elements": [ - { - "from": [-2, 5, 0], - "to": [2, 12, 2], - "faces": { - "north": {"uv": [0, 0, 4, 7], "texture": "#13"}, - "east": {"uv": [0, 0, 2, 7], "texture": "#13"}, - "west": {"uv": [0, 0, 2, 7], "texture": "#13"}, - "up": {"uv": [0, 0, 4, 2], "texture": "#13"}, - "down": {"uv": [0, 0, 4, 2], "texture": "#13"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/empty_hematitic_wine_bottle.json b/src/main/resources/assets/firmalife/models/block/empty_hematitic_wine_bottle.json new file mode 100644 index 00000000..ffdbfe4d --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/empty_hematitic_wine_bottle.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/hematitic_wine_bottle", + "textures": { + "bottle_cork": "tfc:block/empty" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/empty_olivine_wine_bottle.json b/src/main/resources/assets/firmalife/models/block/empty_olivine_wine_bottle.json new file mode 100644 index 00000000..1a604054 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/empty_olivine_wine_bottle.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/olivine_wine_bottle", + "textures": { + "bottle_cork": "tfc:block/empty" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/empty_volcanic_wine_bottle.json b/src/main/resources/assets/firmalife/models/block/empty_volcanic_wine_bottle.json new file mode 100644 index 00000000..bcc4936f --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/empty_volcanic_wine_bottle.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/volcanic_wine_bottle", + "textures": { + "bottle_cork": "tfc:block/empty" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/grape_dead_0.json b/src/main/resources/assets/firmalife/models/block/grape_dead_0.json new file mode 100644 index 00000000..b246f49e --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/grape_dead_0.json @@ -0,0 +1,41 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfc:block/burlap", + "2": "firmalife:block/crop/grape_dead_0", + "particle": "tfc:block/burlap" + }, + "elements": [ + { + "from": [7, 10, 0], + "to": [9, 12, 16], + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 2, 16], "texture": "#1"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/grape_dead_1.json b/src/main/resources/assets/firmalife/models/block/grape_dead_1.json new file mode 100644 index 00000000..56f5ff69 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/grape_dead_1.json @@ -0,0 +1,41 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfc:block/burlap", + "2": "firmalife:block/crop/grape_dead_1", + "particle": "tfc:block/burlap" + }, + "elements": [ + { + "from": [7, 10, 0], + "to": [9, 12, 16], + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 2, 16], "texture": "#1"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/grape_dead_2.json b/src/main/resources/assets/firmalife/models/block/grape_dead_2.json new file mode 100644 index 00000000..280b96f3 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/grape_dead_2.json @@ -0,0 +1,41 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfc:block/burlap", + "2": "firmalife:block/crop/grape_dead_2", + "particle": "tfc:block/burlap" + }, + "elements": [ + { + "from": [7, 10, 0], + "to": [9, 12, 16], + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 2, 16], "texture": "#1"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + }, + { + "from": [0, 0, 8], + "to": [16, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/hematitic_wine_bottle.json b/src/main/resources/assets/firmalife/models/block/hematitic_wine_bottle.json new file mode 100644 index 00000000..edf9d2f9 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/hematitic_wine_bottle.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_bottle", + "textures": { + "bottle_cork": "firmalife:block/wine/bottle_cork", + "bottle": "firmalife:block/wine/hematitic_bottle", + "bottle_neck": "firmalife:block/wine/hematitic_bottle_neck" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/olivine_wine_bottle.json b/src/main/resources/assets/firmalife/models/block/olivine_wine_bottle.json new file mode 100644 index 00000000..6f963ed6 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/olivine_wine_bottle.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_bottle", + "textures": { + "bottle_cork": "firmalife:block/wine/bottle_cork", + "bottle": "firmalife:block/wine/olivine_bottle", + "bottle_neck": "firmalife:block/wine/olivine_bottle_neck" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/volcanic_wine_bottle.json b/src/main/resources/assets/firmalife/models/block/volcanic_wine_bottle.json new file mode 100644 index 00000000..ee596990 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/volcanic_wine_bottle.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_bottle", + "textures": { + "bottle_cork": "firmalife:block/wine/bottle_cork", + "bottle": "firmalife:block/wine/volcanic_bottle", + "bottle_neck": "firmalife:block/wine/volcanic_bottle_neck" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wine_bottle.json b/src/main/resources/assets/firmalife/models/block/wine_bottle.json new file mode 100644 index 00000000..ecd81ea3 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wine_bottle.json @@ -0,0 +1,56 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "#bottle_cork", + "1": "#bottle", + "2": "#bottle_neck", + "particle": "#bottle_cork" + }, + "elements": [ + { + "from": [5, 0, 5], + "to": [11, 13, 11], + "faces": { + "north": {"uv": [0, 0, 3, 6.5], "texture": "#1"}, + "east": {"uv": [3, 0, 6, 6.5], "texture": "#1"}, + "south": {"uv": [6, 0, 9, 6.5], "texture": "#1"}, + "west": {"uv": [0, 6.5, 3, 13], "texture": "#1"}, + "up": {"uv": [6, 9.5, 3, 6.5], "texture": "#1"}, + "down": {"uv": [9, 6.5, 6, 9.5], "texture": "#1"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 16, 9], + "faces": { + "north": {"uv": [0, 0, 2, 3], "texture": "#2"}, + "east": {"uv": [2, 0, 4, 3], "texture": "#2"}, + "south": {"uv": [0, 3, 2, 6], "texture": "#2"}, + "west": {"uv": [2, 3, 4, 6], "texture": "#2"}, + "up": {"uv": [6, 2, 4, 0], "texture": "#2"}, + "down": {"uv": [6, 2, 4, 4], "texture": "#2"} + } + }, + { + "from": [7, 16, 7], + "to": [9, 17, 9], + "faces": { + "north": {"uv": [2, 0, 4, 1], "texture": "#0"}, + "east": {"uv": [2, 1, 4, 2], "texture": "#0"}, + "south": {"uv": [2, 2, 4, 3], "texture": "#0"}, + "west": {"uv": [2, 3, 4, 4], "texture": "#0"}, + "up": {"uv": [2, 2, 0, 0], "texture": "#0"}, + "down": {"uv": [2, 2, 0, 4], "texture": "#0"} + } + } + ], + "display": { + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 4, 0] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wine_shelf.json b/src/main/resources/assets/firmalife/models/block/wine_shelf.json new file mode 100644 index 00000000..5e24a3d2 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wine_shelf.json @@ -0,0 +1,91 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfc:block/wood/planks/ash", + "2": "tfc:block/wood/sheet/ash", + "3": "tfc:block/wood/stripped_log/ash", + "particle": "#0" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 1, 15], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#0"}, + "east": {"uv": [0, 15, 15, 16], "texture": "#0"}, + "west": {"uv": [0, 15, 15, 16], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 15], "texture": "#3"}, + "down": {"uv": [0, 0, 16, 15], "texture": "#0"} + } + }, + { + "from": [1, 7, 0], + "to": [15, 9, 15], + "faces": { + "north": {"uv": [0, 0, 14, 2], "texture": "#3"}, + "up": {"uv": [0, 0, 14, 15], "texture": "#2"}, + "down": {"uv": [0, 0, 14, 15], "texture": "#2"} + } + }, + { + "from": [7, 1, 1], + "to": [9, 15, 15], + "faces": { + "north": {"uv": [1, 1, 3, 15], "texture": "#3"}, + "east": {"uv": [1, 0, 15, 14], "rotation": 180, "texture": "#2"}, + "west": {"uv": [1, 0, 15, 14], "rotation": 180, "texture": "#2"} + } + }, + { + "from": [0, 15, 0], + "to": [16, 16, 15], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#0"}, + "east": {"uv": [1, 0, 16, 1], "texture": "#0"}, + "west": {"uv": [0, 0, 15, 1], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 15], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 15], "texture": "#3"} + } + }, + { + "from": [15, 1, 0], + "to": [16, 15, 15], + "faces": { + "north": {"uv": [0, 0, 1, 14], "texture": "#0"}, + "east": {"uv": [1, 1, 16, 15], "texture": "#0"}, + "west": {"uv": [1, 1, 16, 15], "texture": "#3"} + } + }, + { + "from": [0, 1, 0], + "to": [1, 15, 15], + "faces": { + "north": {"uv": [0, 0, 1, 14], "texture": "#0"}, + "east": {"uv": [0, 1, 15, 15], "texture": "#3"}, + "west": {"uv": [0, 1, 15, 15], "texture": "#0"} + } + }, + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#3"}, + "east": {"uv": [0, 0, 1, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "west": {"uv": [15, 0, 16, 16], "texture": "#0"}, + "up": {"uv": [0, 15, 16, 16], "texture": "#0"}, + "down": {"uv": [0, 15, 16, 16], "texture": "#0"} + } + } + ], + "display": { + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 4, 0] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/acacia.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/acacia.json new file mode 100644 index 00000000..068243b4 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/acacia.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/acacia", + "2": "tfc:block/wood/sheet/acacia", + "3": "tfc:block/wood/stripped_log/acacia" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/acacia_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/acacia_dynamic.json new file mode 100644 index 00000000..fd98594a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/acacia_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/acacia" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/ash.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/ash.json new file mode 100644 index 00000000..a3ae3072 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/ash.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/ash", + "2": "tfc:block/wood/sheet/ash", + "3": "tfc:block/wood/stripped_log/ash" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/ash_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/ash_dynamic.json new file mode 100644 index 00000000..b6ab300f --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/ash_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/ash" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/aspen.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/aspen.json new file mode 100644 index 00000000..2ddcdb20 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/aspen.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/aspen", + "2": "tfc:block/wood/sheet/aspen", + "3": "tfc:block/wood/stripped_log/aspen" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/aspen_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/aspen_dynamic.json new file mode 100644 index 00000000..324203c1 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/aspen_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/aspen" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/birch.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/birch.json new file mode 100644 index 00000000..a758c78b --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/birch.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/birch", + "2": "tfc:block/wood/sheet/birch", + "3": "tfc:block/wood/stripped_log/birch" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/birch_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/birch_dynamic.json new file mode 100644 index 00000000..cdf62a4d --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/birch_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/birch" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/blackwood.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/blackwood.json new file mode 100644 index 00000000..48482472 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/blackwood.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/blackwood", + "2": "tfc:block/wood/sheet/blackwood", + "3": "tfc:block/wood/stripped_log/blackwood" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/blackwood_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/blackwood_dynamic.json new file mode 100644 index 00000000..4db58432 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/blackwood_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/blackwood" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/chestnut.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/chestnut.json new file mode 100644 index 00000000..9e23dd39 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/chestnut.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/chestnut", + "2": "tfc:block/wood/sheet/chestnut", + "3": "tfc:block/wood/stripped_log/chestnut" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/chestnut_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/chestnut_dynamic.json new file mode 100644 index 00000000..db7e218b --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/chestnut_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/chestnut" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/douglas_fir.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/douglas_fir.json new file mode 100644 index 00000000..1768dc0c --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/douglas_fir.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/douglas_fir", + "2": "tfc:block/wood/sheet/douglas_fir", + "3": "tfc:block/wood/stripped_log/douglas_fir" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/douglas_fir_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/douglas_fir_dynamic.json new file mode 100644 index 00000000..3a6e75fa --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/douglas_fir_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/douglas_fir" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/hickory.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/hickory.json new file mode 100644 index 00000000..8ed1ec8a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/hickory.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/hickory", + "2": "tfc:block/wood/sheet/hickory", + "3": "tfc:block/wood/stripped_log/hickory" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/hickory_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/hickory_dynamic.json new file mode 100644 index 00000000..f7bfc156 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/hickory_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/hickory" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/kapok.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/kapok.json new file mode 100644 index 00000000..aef9144c --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/kapok.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/kapok", + "2": "tfc:block/wood/sheet/kapok", + "3": "tfc:block/wood/stripped_log/kapok" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/kapok_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/kapok_dynamic.json new file mode 100644 index 00000000..0392b516 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/kapok_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/kapok" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/mangrove.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/mangrove.json new file mode 100644 index 00000000..4157d9f1 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/mangrove.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/mangrove", + "2": "tfc:block/wood/sheet/mangrove", + "3": "tfc:block/wood/stripped_log/mangrove" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/mangrove_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/mangrove_dynamic.json new file mode 100644 index 00000000..d366fe3a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/mangrove_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/mangrove" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/maple.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/maple.json new file mode 100644 index 00000000..da06d072 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/maple.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/maple", + "2": "tfc:block/wood/sheet/maple", + "3": "tfc:block/wood/stripped_log/maple" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/maple_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/maple_dynamic.json new file mode 100644 index 00000000..cd55caa7 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/maple_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/maple" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/oak.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/oak.json new file mode 100644 index 00000000..a187d3b1 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/oak.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/oak", + "2": "tfc:block/wood/sheet/oak", + "3": "tfc:block/wood/stripped_log/oak" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/oak_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/oak_dynamic.json new file mode 100644 index 00000000..53c1e104 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/oak_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/oak" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/palm.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/palm.json new file mode 100644 index 00000000..3e7d0589 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/palm.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/palm", + "2": "tfc:block/wood/sheet/palm", + "3": "tfc:block/wood/stripped_log/palm" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/palm_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/palm_dynamic.json new file mode 100644 index 00000000..ff07e05f --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/palm_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/palm" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/pine.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/pine.json new file mode 100644 index 00000000..fac69981 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/pine.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/pine", + "2": "tfc:block/wood/sheet/pine", + "3": "tfc:block/wood/stripped_log/pine" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/pine_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/pine_dynamic.json new file mode 100644 index 00000000..22764e07 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/pine_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/pine" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/rosewood.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/rosewood.json new file mode 100644 index 00000000..e1e8d2eb --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/rosewood.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/rosewood", + "2": "tfc:block/wood/sheet/rosewood", + "3": "tfc:block/wood/stripped_log/rosewood" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/rosewood_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/rosewood_dynamic.json new file mode 100644 index 00000000..698e5a91 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/rosewood_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/rosewood" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sequoia.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sequoia.json new file mode 100644 index 00000000..9a67fc72 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sequoia.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/sequoia", + "2": "tfc:block/wood/sheet/sequoia", + "3": "tfc:block/wood/stripped_log/sequoia" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sequoia_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sequoia_dynamic.json new file mode 100644 index 00000000..bcc2d745 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sequoia_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/sequoia" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/spruce.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/spruce.json new file mode 100644 index 00000000..b9b26779 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/spruce.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/spruce", + "2": "tfc:block/wood/sheet/spruce", + "3": "tfc:block/wood/stripped_log/spruce" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/spruce_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/spruce_dynamic.json new file mode 100644 index 00000000..c0c75d2d --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/spruce_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/spruce" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sycamore.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sycamore.json new file mode 100644 index 00000000..819a3c14 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sycamore.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/sycamore", + "2": "tfc:block/wood/sheet/sycamore", + "3": "tfc:block/wood/stripped_log/sycamore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sycamore_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sycamore_dynamic.json new file mode 100644 index 00000000..d5694075 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/sycamore_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/sycamore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/white_cedar.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/white_cedar.json new file mode 100644 index 00000000..74c44006 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/white_cedar.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/white_cedar", + "2": "tfc:block/wood/sheet/white_cedar", + "3": "tfc:block/wood/stripped_log/white_cedar" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/white_cedar_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/white_cedar_dynamic.json new file mode 100644 index 00000000..18d7f847 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/white_cedar_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/white_cedar" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/willow.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/willow.json new file mode 100644 index 00000000..ad3aa800 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/willow.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wine_shelf", + "textures": { + "0": "tfc:block/wood/planks/willow", + "2": "tfc:block/wood/sheet/willow", + "3": "tfc:block/wood/stripped_log/willow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/willow_dynamic.json b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/willow_dynamic.json new file mode 100644 index 00000000..9a0de0ef --- /dev/null +++ b/src/main/resources/assets/firmalife/models/block/wood/wine_shelf/willow_dynamic.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "loader": "firmalife:wine_shelf", + "base": { + "parent": "firmalife:block/wood/wine_shelf/willow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/bottle_label.json b/src/main/resources/assets/firmalife/models/item/bottle_label.json new file mode 100644 index 00000000..ee3085d8 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/bottle_label.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "item/generated", + "textures": { + "layer0": "firmalife:item/bottle_label" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/cork.json b/src/main/resources/assets/firmalife/models/item/cork.json new file mode 100644 index 00000000..7845ef74 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/cork.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "item/generated", + "textures": { + "layer0": "firmalife:item/cork" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/empty_hematitic_wine_bottle.json b/src/main/resources/assets/firmalife/models/item/empty_hematitic_wine_bottle.json new file mode 100644 index 00000000..4e08ee1d --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/empty_hematitic_wine_bottle.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "item/generated", + "textures": { + "layer0": "firmalife:item/empty_hematitic_wine_bottle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/empty_olivine_wine_bottle.json b/src/main/resources/assets/firmalife/models/item/empty_olivine_wine_bottle.json new file mode 100644 index 00000000..c6fee4b2 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/empty_olivine_wine_bottle.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "item/generated", + "textures": { + "layer0": "firmalife:item/empty_olivine_wine_bottle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/empty_volcanic_wine_bottle.json b/src/main/resources/assets/firmalife/models/item/empty_volcanic_wine_bottle.json new file mode 100644 index 00000000..aaf37565 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/empty_volcanic_wine_bottle.json @@ -0,0 +1,7 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "item/generated", + "textures": { + "layer0": "firmalife:item/empty_volcanic_wine_bottle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/acacia.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/acacia.json new file mode 100644 index 00000000..16b6cc74 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/acacia.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/acacia" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/ash.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/ash.json new file mode 100644 index 00000000..6266c50c --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/ash.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/ash" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/aspen.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/aspen.json new file mode 100644 index 00000000..913b732c --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/aspen.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/aspen" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/birch.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/birch.json new file mode 100644 index 00000000..dda0842b --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/birch.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/birch" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/blackwood.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/blackwood.json new file mode 100644 index 00000000..83bcb037 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/blackwood.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/blackwood" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/chestnut.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/chestnut.json new file mode 100644 index 00000000..10414233 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/chestnut.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/chestnut" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/douglas_fir.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/douglas_fir.json new file mode 100644 index 00000000..590224b6 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/douglas_fir.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/douglas_fir" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/hickory.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/hickory.json new file mode 100644 index 00000000..1f67881a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/hickory.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/hickory" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/kapok.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/kapok.json new file mode 100644 index 00000000..b58dd24c --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/kapok.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/kapok" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/mangrove.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/mangrove.json new file mode 100644 index 00000000..a84e3ab8 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/mangrove.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/mangrove" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/maple.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/maple.json new file mode 100644 index 00000000..36254b15 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/maple.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/maple" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/oak.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/oak.json new file mode 100644 index 00000000..2e503e7a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/oak.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/oak" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/palm.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/palm.json new file mode 100644 index 00000000..5ecb895a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/palm.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/palm" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/pine.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/pine.json new file mode 100644 index 00000000..14f3ca05 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/pine.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/pine" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/rosewood.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/rosewood.json new file mode 100644 index 00000000..41704b5c --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/rosewood.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/rosewood" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/sequoia.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/sequoia.json new file mode 100644 index 00000000..c9dc27d6 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/sequoia.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/sequoia" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/spruce.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/spruce.json new file mode 100644 index 00000000..ba2073ef --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/spruce.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/spruce" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/sycamore.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/sycamore.json new file mode 100644 index 00000000..1eae7b76 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/sycamore.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/sycamore" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/white_cedar.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/white_cedar.json new file mode 100644 index 00000000..08c38f13 --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/white_cedar.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/white_cedar" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/willow.json b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/willow.json new file mode 100644 index 00000000..2deaab4a --- /dev/null +++ b/src/main/resources/assets/firmalife/models/item/wood/wine_shelf/willow.json @@ -0,0 +1,4 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "parent": "firmalife:block/wood/wine_shelf/willow" +} \ No newline at end of file diff --git a/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_0.png b/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_0.png new file mode 100644 index 00000000..2876d901 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_0.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/crop/grape_dead.png b/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_1.png similarity index 100% rename from src/main/resources/assets/firmalife/textures/block/crop/grape_dead.png rename to src/main/resources/assets/firmalife/textures/block/crop/grape_dead_1.png diff --git a/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_2.png b/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_2.png new file mode 100644 index 00000000..0241b11c Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/crop/grape_dead_2.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/bottle_cork.png b/src/main/resources/assets/firmalife/textures/block/wine/bottle_cork.png new file mode 100644 index 00000000..48cee286 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/bottle_cork.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/hematitic_bottle.png b/src/main/resources/assets/firmalife/textures/block/wine/hematitic_bottle.png new file mode 100644 index 00000000..aec1a662 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/hematitic_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/hematitic_bottle_neck.png b/src/main/resources/assets/firmalife/textures/block/wine/hematitic_bottle_neck.png new file mode 100644 index 00000000..c9ef531d Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/hematitic_bottle_neck.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/olivine_bottle.png b/src/main/resources/assets/firmalife/textures/block/wine/olivine_bottle.png new file mode 100644 index 00000000..ada1f941 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/olivine_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/olivine_bottle_neck.png b/src/main/resources/assets/firmalife/textures/block/wine/olivine_bottle_neck.png new file mode 100644 index 00000000..1e034ee0 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/olivine_bottle_neck.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/volcanic_bottle.png b/src/main/resources/assets/firmalife/textures/block/wine/volcanic_bottle.png new file mode 100644 index 00000000..ceae6926 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/volcanic_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/block/wine/volcanic_bottle_neck.png b/src/main/resources/assets/firmalife/textures/block/wine/volcanic_bottle_neck.png new file mode 100644 index 00000000..1965bfb4 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/block/wine/volcanic_bottle_neck.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/bottle_label.png b/src/main/resources/assets/firmalife/textures/item/bottle_label.png new file mode 100644 index 00000000..1f08aa94 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/item/bottle_label.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/cork.png b/src/main/resources/assets/firmalife/textures/item/cork.png new file mode 100644 index 00000000..0009c990 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/item/cork.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/empty_hematitic_wine_bottle.png b/src/main/resources/assets/firmalife/textures/item/empty_hematitic_wine_bottle.png new file mode 100644 index 00000000..27fd4c02 Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/item/empty_hematitic_wine_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/empty_olivine_wine_bottle.png b/src/main/resources/assets/firmalife/textures/item/empty_olivine_wine_bottle.png new file mode 100644 index 00000000..02c6fd6e Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/item/empty_olivine_wine_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/empty_volcanic_wine_bottle.png b/src/main/resources/assets/firmalife/textures/item/empty_volcanic_wine_bottle.png new file mode 100644 index 00000000..a37627af Binary files /dev/null and b/src/main/resources/assets/firmalife/textures/item/empty_volcanic_wine_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/hematitic_wine_bottle.png b/src/main/resources/assets/firmalife/textures/item/hematitic_wine_bottle.png index 7095c960..a0b17a52 100644 Binary files a/src/main/resources/assets/firmalife/textures/item/hematitic_wine_bottle.png and b/src/main/resources/assets/firmalife/textures/item/hematitic_wine_bottle.png differ diff --git a/src/main/resources/assets/firmalife/textures/item/volcanic_wine_bottle.png b/src/main/resources/assets/firmalife/textures/item/volcanic_wine_bottle.png index 4322b589..065364fb 100644 Binary files a/src/main/resources/assets/firmalife/textures/item/volcanic_wine_bottle.png and b/src/main/resources/assets/firmalife/textures/item/volcanic_wine_bottle.png differ diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/acacia.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/acacia.json new file mode 100644 index 00000000..b2fa4c18 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/acacia.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/acacia" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/ash.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/ash.json new file mode 100644 index 00000000..435bcf90 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/ash.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/ash" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/aspen.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/aspen.json new file mode 100644 index 00000000..58c414e4 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/aspen.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/aspen" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/birch.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/birch.json new file mode 100644 index 00000000..a605f569 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/birch.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/birch" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/blackwood.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/blackwood.json new file mode 100644 index 00000000..bb0a7c5e --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/blackwood.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/blackwood" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/chestnut.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/chestnut.json new file mode 100644 index 00000000..a2257dcf --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/chestnut.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/chestnut" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/douglas_fir.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/douglas_fir.json new file mode 100644 index 00000000..26235f52 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/douglas_fir.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/douglas_fir" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/hickory.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/hickory.json new file mode 100644 index 00000000..2ba51bc1 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/hickory.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/hickory" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/kapok.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/kapok.json new file mode 100644 index 00000000..6d781b97 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/kapok.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/kapok" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/mangrove.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/mangrove.json new file mode 100644 index 00000000..b2eaf534 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/mangrove.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/mangrove" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/maple.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/maple.json new file mode 100644 index 00000000..ccf30304 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/maple.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/maple" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/oak.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/oak.json new file mode 100644 index 00000000..8a822d81 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/oak.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/oak" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/palm.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/palm.json new file mode 100644 index 00000000..76c981fe --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/palm.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/palm" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/pine.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/pine.json new file mode 100644 index 00000000..ff2345d4 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/pine.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/pine" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/rosewood.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/rosewood.json new file mode 100644 index 00000000..03400266 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/rosewood.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/rosewood" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/sequoia.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/sequoia.json new file mode 100644 index 00000000..0e9792e0 --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/sequoia.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/sequoia" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/spruce.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/spruce.json new file mode 100644 index 00000000..5962afeb --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/spruce.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/spruce" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/sycamore.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/sycamore.json new file mode 100644 index 00000000..119d90ec --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/sycamore.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/sycamore" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/white_cedar.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/white_cedar.json new file mode 100644 index 00000000..caf38b7d --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/white_cedar.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/white_cedar" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/willow.json b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/willow.json new file mode 100644 index 00000000..bcb7fe6a --- /dev/null +++ b/src/main/resources/data/firmalife/loot_tables/blocks/wood/wine_shelf/willow.json @@ -0,0 +1,21 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "firmalife:wood/wine_shelf/willow" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tags/blocks/wine_shelves.json b/src/main/resources/data/firmalife/tags/blocks/wine_shelves.json new file mode 100644 index 00000000..bfb88709 --- /dev/null +++ b/src/main/resources/data/firmalife/tags/blocks/wine_shelves.json @@ -0,0 +1,26 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "replace": false, + "values": [ + "firmalife:wood/wine_shelf/acacia", + "firmalife:wood/wine_shelf/ash", + "firmalife:wood/wine_shelf/aspen", + "firmalife:wood/wine_shelf/birch", + "firmalife:wood/wine_shelf/blackwood", + "firmalife:wood/wine_shelf/chestnut", + "firmalife:wood/wine_shelf/douglas_fir", + "firmalife:wood/wine_shelf/hickory", + "firmalife:wood/wine_shelf/kapok", + "firmalife:wood/wine_shelf/mangrove", + "firmalife:wood/wine_shelf/maple", + "firmalife:wood/wine_shelf/oak", + "firmalife:wood/wine_shelf/palm", + "firmalife:wood/wine_shelf/pine", + "firmalife:wood/wine_shelf/rosewood", + "firmalife:wood/wine_shelf/sequoia", + "firmalife:wood/wine_shelf/spruce", + "firmalife:wood/wine_shelf/sycamore", + "firmalife:wood/wine_shelf/white_cedar", + "firmalife:wood/wine_shelf/willow" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tags/items/empty_wine_bottles.json b/src/main/resources/data/firmalife/tags/items/empty_wine_bottles.json new file mode 100644 index 00000000..a47c3749 --- /dev/null +++ b/src/main/resources/data/firmalife/tags/items/empty_wine_bottles.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "replace": false, + "values": [ + "firmalife:empty_hematitic_wine_bottle", + "firmalife:empty_olivine_wine_bottle", + "firmalife:empty_volcanic_wine_bottle" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tags/items/filled_wine_bottles.json b/src/main/resources/data/firmalife/tags/items/filled_wine_bottles.json new file mode 100644 index 00000000..a38b5103 --- /dev/null +++ b/src/main/resources/data/firmalife/tags/items/filled_wine_bottles.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "replace": false, + "values": [ + "firmalife:hematitic_wine_bottle", + "firmalife:olivine_wine_bottle", + "firmalife:volcanic_wine_bottle" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tags/items/wine_bottles.json b/src/main/resources/data/firmalife/tags/items/wine_bottles.json new file mode 100644 index 00000000..7ad42092 --- /dev/null +++ b/src/main/resources/data/firmalife/tags/items/wine_bottles.json @@ -0,0 +1,8 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "replace": false, + "values": [ + "#firmalife:empty_wine_bottles", + "#firmalife:filled_wine_bottles" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tags/items/wine_shelves.json b/src/main/resources/data/firmalife/tags/items/wine_shelves.json new file mode 100644 index 00000000..bfb88709 --- /dev/null +++ b/src/main/resources/data/firmalife/tags/items/wine_shelves.json @@ -0,0 +1,26 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "replace": false, + "values": [ + "firmalife:wood/wine_shelf/acacia", + "firmalife:wood/wine_shelf/ash", + "firmalife:wood/wine_shelf/aspen", + "firmalife:wood/wine_shelf/birch", + "firmalife:wood/wine_shelf/blackwood", + "firmalife:wood/wine_shelf/chestnut", + "firmalife:wood/wine_shelf/douglas_fir", + "firmalife:wood/wine_shelf/hickory", + "firmalife:wood/wine_shelf/kapok", + "firmalife:wood/wine_shelf/mangrove", + "firmalife:wood/wine_shelf/maple", + "firmalife:wood/wine_shelf/oak", + "firmalife:wood/wine_shelf/palm", + "firmalife:wood/wine_shelf/pine", + "firmalife:wood/wine_shelf/rosewood", + "firmalife:wood/wine_shelf/sequoia", + "firmalife:wood/wine_shelf/spruce", + "firmalife:wood/wine_shelf/sycamore", + "firmalife:wood/wine_shelf/white_cedar", + "firmalife:wood/wine_shelf/willow" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tfc/climate_ranges/plant/grapes.json b/src/main/resources/data/firmalife/tfc/climate_ranges/plant/grapes.json new file mode 100644 index 00000000..ed3640e8 --- /dev/null +++ b/src/main/resources/data/firmalife/tfc/climate_ranges/plant/grapes.json @@ -0,0 +1,9 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "min_hydration": 0, + "max_hydration": 100, + "hydration_wiggle_range": 0, + "min_temperature": 0, + "max_temperature": 50, + "temperature_wiggle_range": 0 +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tfc/item_sizes/empty_wine.json b/src/main/resources/data/firmalife/tfc/item_sizes/empty_wine.json new file mode 100644 index 00000000..590a03af --- /dev/null +++ b/src/main/resources/data/firmalife/tfc/item_sizes/empty_wine.json @@ -0,0 +1,8 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "ingredient": { + "tag": "firmalife:empty_wine_bottles" + }, + "size": "normal", + "weight": "medium" +} \ No newline at end of file diff --git a/src/main/resources/data/firmalife/tfc/item_sizes/wine.json b/src/main/resources/data/firmalife/tfc/item_sizes/wine.json new file mode 100644 index 00000000..e5b93b2a --- /dev/null +++ b/src/main/resources/data/firmalife/tfc/item_sizes/wine.json @@ -0,0 +1,8 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "ingredient": { + "tag": "firmalife:filled_wine_bottles" + }, + "size": "very_large", + "weight": "very_heavy" +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json index 07d4f019..34785cfb 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -36,82 +36,102 @@ "firmalife:wood/hanger/acacia", "firmalife:wood/jarbnet/acacia", "firmalife:wood/big_barrel/acacia", + "firmalife:wood/wine_shelf/acacia", "firmalife:wood/food_shelf/ash", "firmalife:wood/hanger/ash", "firmalife:wood/jarbnet/ash", "firmalife:wood/big_barrel/ash", + "firmalife:wood/wine_shelf/ash", "firmalife:wood/food_shelf/aspen", "firmalife:wood/hanger/aspen", "firmalife:wood/jarbnet/aspen", "firmalife:wood/big_barrel/aspen", + "firmalife:wood/wine_shelf/aspen", "firmalife:wood/food_shelf/birch", "firmalife:wood/hanger/birch", "firmalife:wood/jarbnet/birch", "firmalife:wood/big_barrel/birch", + "firmalife:wood/wine_shelf/birch", "firmalife:wood/food_shelf/blackwood", "firmalife:wood/hanger/blackwood", "firmalife:wood/jarbnet/blackwood", "firmalife:wood/big_barrel/blackwood", + "firmalife:wood/wine_shelf/blackwood", "firmalife:wood/food_shelf/chestnut", "firmalife:wood/hanger/chestnut", "firmalife:wood/jarbnet/chestnut", "firmalife:wood/big_barrel/chestnut", + "firmalife:wood/wine_shelf/chestnut", "firmalife:wood/food_shelf/douglas_fir", "firmalife:wood/hanger/douglas_fir", "firmalife:wood/jarbnet/douglas_fir", "firmalife:wood/big_barrel/douglas_fir", + "firmalife:wood/wine_shelf/douglas_fir", "firmalife:wood/food_shelf/hickory", "firmalife:wood/hanger/hickory", "firmalife:wood/jarbnet/hickory", "firmalife:wood/big_barrel/hickory", + "firmalife:wood/wine_shelf/hickory", "firmalife:wood/food_shelf/kapok", "firmalife:wood/hanger/kapok", "firmalife:wood/jarbnet/kapok", "firmalife:wood/big_barrel/kapok", + "firmalife:wood/wine_shelf/kapok", "firmalife:wood/food_shelf/mangrove", "firmalife:wood/hanger/mangrove", "firmalife:wood/jarbnet/mangrove", "firmalife:wood/big_barrel/mangrove", + "firmalife:wood/wine_shelf/mangrove", "firmalife:wood/food_shelf/maple", "firmalife:wood/hanger/maple", "firmalife:wood/jarbnet/maple", "firmalife:wood/big_barrel/maple", + "firmalife:wood/wine_shelf/maple", "firmalife:wood/food_shelf/oak", "firmalife:wood/hanger/oak", "firmalife:wood/jarbnet/oak", "firmalife:wood/big_barrel/oak", + "firmalife:wood/wine_shelf/oak", "firmalife:wood/food_shelf/palm", "firmalife:wood/hanger/palm", "firmalife:wood/jarbnet/palm", "firmalife:wood/big_barrel/palm", + "firmalife:wood/wine_shelf/palm", "firmalife:wood/food_shelf/pine", "firmalife:wood/hanger/pine", "firmalife:wood/jarbnet/pine", "firmalife:wood/big_barrel/pine", + "firmalife:wood/wine_shelf/pine", "firmalife:wood/food_shelf/rosewood", "firmalife:wood/hanger/rosewood", "firmalife:wood/jarbnet/rosewood", "firmalife:wood/big_barrel/rosewood", + "firmalife:wood/wine_shelf/rosewood", "firmalife:wood/food_shelf/sequoia", "firmalife:wood/hanger/sequoia", "firmalife:wood/jarbnet/sequoia", "firmalife:wood/big_barrel/sequoia", + "firmalife:wood/wine_shelf/sequoia", "firmalife:wood/food_shelf/spruce", "firmalife:wood/hanger/spruce", "firmalife:wood/jarbnet/spruce", "firmalife:wood/big_barrel/spruce", + "firmalife:wood/wine_shelf/spruce", "firmalife:wood/food_shelf/sycamore", "firmalife:wood/hanger/sycamore", "firmalife:wood/jarbnet/sycamore", "firmalife:wood/big_barrel/sycamore", + "firmalife:wood/wine_shelf/sycamore", "firmalife:wood/food_shelf/white_cedar", "firmalife:wood/hanger/white_cedar", "firmalife:wood/jarbnet/white_cedar", "firmalife:wood/big_barrel/white_cedar", + "firmalife:wood/wine_shelf/white_cedar", "firmalife:wood/food_shelf/willow", "firmalife:wood/hanger/willow", "firmalife:wood/jarbnet/willow", "firmalife:wood/big_barrel/willow", + "firmalife:wood/wine_shelf/willow", "firmalife:treated_wood", "firmalife:plant/cocoa_branch", "firmalife:plant/fig_branch", diff --git a/src/main/resources/data/#tfc/tags/items/seeds.json b/src/main/resources/data/tfc/tags/items/seeds.json similarity index 100% rename from src/main/resources/data/#tfc/tags/items/seeds.json rename to src/main/resources/data/tfc/tags/items/seeds.json