Skip to content

Commit

Permalink
- Add several types of mushrooms
Browse files Browse the repository at this point in the history
- Add the juicer, a drinking vessel that can turn mushrooms and fruits into water.
- Allow decrafting of stone-like nether blocks
- Fix stone-like nether blocks not dropping themselves when isolated
- Fix hellforge not heating items
- Fix knapping with beneath rocks having missing textures
  • Loading branch information
eerussianguy committed Jun 30, 2024
1 parent 57ee292 commit d017d84
Show file tree
Hide file tree
Showing 156 changed files with 2,068 additions and 72 deletions.
15 changes: 6 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# Changes

- Fix knapping with nether rocks
- Add recipes for nether bricks
- Add loot table to ruined portal
- Rename vanilla basalt to 'basalt columns'
- Fix a crash when it snows in the overworld
- Remove vanilla horse armor from some loot tables
- Reduce frequency of glowstone spikes
- Allow lava aqueducts to emit light
- Make hellforges add more heat at higher internal temperatures (like crucibles)
- Add several types of mushrooms
- Add the juicer, a drinking vessel that can turn mushrooms and fruits into water.
- Allow decrafting of stone-like nether blocks
- Fix stone-like nether blocks not dropping themselves when isolated
- Fix hellforge not heating items
- Fix knapping with beneath rocks having missing textures
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ val jeiVersion: String = "15.2.0.21"
val patchouliVersion: String = "1.20.1-81-FORGE"
val jadeVersion: String = "4614153"
val topVersion: String = "4629624"
val tfcVersion: String = "5276689"
val tfcVersion: String = "5478226"

val modId: String = "beneath"

Expand Down
7 changes: 6 additions & 1 deletion resources/assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,12 @@ def generate(rm: ResourceManager):
rm.blockstate('soul_farmland').with_block_loot('minecraft:soul_soil').with_lang(lang('soul farmland')).with_block_model({'dirt': 'minecraft:block/soul_soil', 'top': 'beneath:block/soul_farmland'}, 'minecraft:block/template_farmland').with_tag('minecraft:mineable/shovel').with_item_model()
rm.blockstate('soul_clay', variants={'up=true': {'model': 'beneath:block/soul_clay_up'}, 'up=false': {'model': 'beneath:block/soul_clay'}}).with_block_loot('1-4 minecraft:clay_ball').with_lang(lang('soul clay')).with_block_model(textures={'all': 'beneath:block/soul_clay'}).with_tag('minecraft:mineable/shovel').with_item_model()
rm.block_model('soul_clay_up', textures={'end': 'minecraft:block/soul_sand', 'side': 'beneath:block/soul_clay_up'}, parent='block/cube_column')
rm.blockstate('crackrack').with_block_loot('1-4 beneath:crackrack_rock').with_lang(lang('crackrack')).with_block_model().with_tag('minecraft:mineable/pickaxe').with_tag('minecraft:base_stone_nether').with_item_model()
rm.blockstate('crackrack').with_block_loot(loot_tables.alternatives({'name': 'beneath:crackrack', 'conditions': [{'condition': 'tfc:is_isolated'}]}, '2-4 beneath:crackrack_rock')).with_lang(lang('crackrack')).with_block_model().with_tag('minecraft:mineable/pickaxe').with_tag('minecraft:base_stone_nether').with_item_model()

for shroom in MUSHROOMS:
mushlang = '%s mushroom' % shroom.replace('fools', 'Fool\'s')
rm.blockstate('mushroom/%s' % shroom).with_block_model(parent='block/cross', textures={'cross': 'beneath:block/mushroom/%s' % shroom}).with_block_loot('beneath:food/%s' % shroom).with_tag('tfc:plants').with_tag('tfc:mineable_with_sharp_tool').with_lang(lang(mushlang))
rm.item_model('food/%s' % shroom, 'beneath:block/mushroom/%s' % shroom).with_lang(lang(mushlang))

simple_block(rm, 'cobblerack', 'minecraft:mineable/pickaxe', 'forge:cobblestone')
simple_block(rm, 'fungal_cobblerack', 'minecraft:mineable/pickaxe')
Expand Down
6 changes: 5 additions & 1 deletion resources/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,10 @@ class Rock(NamedTuple):
NUTRIENTS = ('death', 'destruction', 'decay', 'sorrow', 'flame')

SIMPLE_ITEMS = ('gold_chunk', 'cursed_hide', 'cursecoal', 'pure_death', 'pure_decay', 'pure_destruction', 'pure_sorrow', 'pure_flame', 'agonizing_fertilizer', 'crimson_straw', 'warped_straw', 'ghost_pepper', 'blackstone_brick',
'crackrack_rock',
'crackrack_rock', 'juicer',
)
MUSHROOMS = ('button', 'chantrelle', 'death_cap', 'destroying_angels', 'fools_funnel', 'oyster', 'parasol', 'portobello', 'shittake', 'sulfur_tuft')
POISONOUS_MUSHROOMS = ('death_cap', 'destroying_angels', 'fools_funnel', 'sulfur_tuft')

ROCK_SPIKE_PARTS = ('base', 'middle', 'tip')

Expand All @@ -115,6 +117,8 @@ class Rock(NamedTuple):
'beneath.nutrient.flame': 'Flame: §c%s%%',
'beneath.nutrient.sorrow': 'Sorrow: §9%s%%',
'beneath.block_entity.hellforge': 'Hellforge',
'beneath.screen.juicer': 'Juicer',
'item.beneath.juicer.filled': 'Juicer (%s)',
'death.attack.beneath.sulfur': '%1$s mined sulfur with an iron tool and blew themselves up.',
'death.attack.beneath.sulfur.player': '%1$s mined sulfur with an iron tool and blew themselves up while trying to escape %2$s.',
**{'entity.beneath.boat.%s' % wood: lang('%s boat', wood) for wood in WOODS},
Expand Down
24 changes: 20 additions & 4 deletions resources/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ def generate(rm: ResourceManager):

### LOOT ###

rm.block_loot('minecraft:netherrack', '2-4 beneath:nether_pebble')
rm.block_loot('minecraft:basalt', '2-4 tfc:rock/loose/basalt')
rm.block_loot('minecraft:netherrack', loot_tables.alternatives({'name': 'minecraft:netherrack', 'conditions': [{'condition': 'tfc:is_isolated'}]}, '2-4 beneath:nether_pebble'))
rm.block_loot('minecraft:basalt', loot_tables.alternatives({'name': 'minecraft:basalt', 'conditions': [{'condition': 'tfc:is_isolated'}]}, '2-4 tfc:rock/loose/basalt'))
rm.block_loot('minecraft:gilded_blackstone', 'minecraft:blackstone', {'name': 'beneath:gold_chunk', 'conditions': [loot_tables.random_chance(0.25)]})
rm.block_loot('minecraft:gold_block', '3-6 beneath:gold_chunk')
rm.block_loot('minecraft:blackstone', '2-4 beneath:blackstone_pebble')
rm.block_loot('minecraft:blackstone', loot_tables.alternatives({'name': 'minecraft:blackstone', 'conditions': [{'condition': 'tfc:is_isolated'}]}, '2-4 beneath:blackstone_pebble'))
rm.block_loot('minecraft:crimson_roots', loot_tables.alternatives({'name': 'minecraft:crimson_roots', 'conditions': [loot_tables.match_tag('forge:shears')]}, {'name': 'beneath:crimson_straw', 'conditions': [loot_tables.match_tag('tfc:sharp_tools')]}, {'name': 'beneath:seeds/crimson_roots', 'conditions': [loot_tables.random_chance(0.1)]}))
rm.block_loot('minecraft:warped_roots', loot_tables.alternatives({'name': 'minecraft:warped_roots', 'conditions': [loot_tables.match_tag('forge:shears')]}, {'name': 'beneath:warped_straw', 'conditions': [loot_tables.match_tag('tfc:sharp_tools')]}, {'name': 'beneath:seeds/warped_roots', 'conditions': [loot_tables.random_chance(0.1)]}))
rm.block_loot('minecraft:bone_block', '1-3 minecraft:bone_meal')
Expand Down Expand Up @@ -227,22 +227,33 @@ def generate(rm: ResourceManager):
### BLOCK TAGS ###
rm.block_tag('breaks_slowly', 'minecraft:netherrack', 'minecraft:soul_sand', 'minecraft:soul_soil', 'minecraft:magma_block', 'minecraft:warped_nylium', 'minecraft:crimson_nylium')

rm.block_tag('tfc:breaks_when_isolated', 'minecraft:basalt', 'minecraft:blackstone', 'minecraft:netherrack')
rm.block_tag('tfc:breaks_when_isolated', 'minecraft:basalt', 'minecraft:blackstone', 'minecraft:netherrack', 'beneath:crackrack')
rm.block_tag('tfc:tree_grows_on', 'minecraft:netherrack', 'minecraft:warped_nylium', 'minecraft:crimson_nylium')
rm.block_tag('beneath:hellforge_insulation', 'beneath:hellbricks')
rm.block_tag('beneath:nether_bush_plantable_on', '#minecraft:base_stone_nether', 'minecraft:soul_soil', 'minecraft:soul_sand', 'beneath:soul_farmland', 'minecraft:crimson_nylium', 'minecraft:warped_nylium')
rm.block_tag('minecraft:mineable/pickaxe', 'beneath:blackstone_aqueduct')
rm.block_tag('minecraft:mineable/shovel', 'beneath:cursecoal_pile', 'beneath:hellforge')

for shroom in MUSHROOMS:
rm.block_tag('mushrooms', 'beneath:mushroom/%s' % shroom)
if shroom in POISONOUS_MUSHROOMS:
rm.block_tag('poisonous_mushrooms', 'beneath:mushroom/%s' % shroom)

### ITEM TAGS ###
rm.item_tag('sparks_on_sulfur', *['#tfc:metal_item/%s' % metal for metal in ('black_steel', 'blue_steel', 'red_steel', 'steel', 'wrought_iron', 'cast_iron')])
rm.item_tag('usable_in_juicer', '#tfc:foods/fruits', '#beneath:mushrooms')

block_and_item_tag(rm, 'tfc:rock/aqueduct', 'beneath:blackstone_aqueduct')
rm.item_tag('tfc:rock_knapping', 'beneath:nether_pebble', 'beneath:blackstone_pebble')
rm.item_tag('tfc:metamorphic_rock', 'beneath:blackstone_pebble')
rm.item_tag('tfc:sedimentary_rock', 'beneath:nether_pebble')
block_and_item_tag(rm, 'minecraft:stone_bricks', 'beneath:hellbricks')

for shroom in MUSHROOMS:
rm.item_tag('mushrooms', 'beneath:food/%s' % shroom)
if shroom in POISONOUS_MUSHROOMS:
rm.item_tag('poisonous_mushrooms', 'beneath:food/%s' % shroom)

### ENTITY TAGS ###
rm.entity_tag('can_be_sacrificed', 'tfc:pig', 'tfc:goat', 'tfc:sheep')

Expand All @@ -252,10 +263,15 @@ def generate(rm: ResourceManager):

### FUELS ###
fuel_item(rm, 'cursecoal', 'beneath:cursecoal', 1800, 1350)
for wood in WOODS:
fuel_item(rm, wood + '_log', ['beneath:wood/log/' + wood, 'beneath:wood/wood/' + wood, 'beneath:wood/stripped_wood/' + wood, 'beneath:wood/stripped_log/' + wood], 800, 1000, 0.6)

### FOODS ###
food_item(rm, 'ghost_pepper', 'beneath:ghost_pepper', Category.vegetable, 4, 1, 0, 2.5, veg=1)

for shroom in MUSHROOMS:
food_item(rm, shroom, 'beneath:food/%s' % shroom, Category.vegetable, 4, 1, 2, 1.5, veg=1)

### FERTILIZERS ###
n_fertilizer(rm, 'pure_death', 'beneath:pure_death', death=0.1)
n_fertilizer(rm, 'pure_decay', 'beneath:pure_decay', decay=0.1)
Expand Down
27 changes: 27 additions & 0 deletions resources/recipes.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@
def generate(rm: ResourceManager):
### CRAFTING RECIPES ###
rm.crafting_shaped('crafting/cobblerack', ['XX', 'XX'], {'X': 'beneath:nether_pebble'}, 'beneath:cobblerack').with_advancement('beneath:nether_pebble')
rm.crafting_shapeless('crafting/cobblerack_uncraft', ('beneath:cobblerack',), '4 beneath:nether_pebble').with_advancement('beneath:cobblerack')
rm.crafting_shaped('crafting/crackrack', ['XX', 'XX'], {'X': 'beneath:crackrack_rock'}, 'beneath:crackrack').with_advancement('beneath:crackrack_rock')
rm.crafting_shapeless('crafting/crackrack_uncraft', ('beneath:crackrack',), '4 beneath:crackrack_rock').with_advancement('beneath:crackrack')
rm.crafting_shaped('crafting/crimson_thatch', ['XX', 'XX'], {'X': 'beneath:warped_straw'}, 'beneath:crimson_thatch').with_advancement('beneath:crimson_straw')
rm.crafting_shaped('crafting/warped_thatch', ['XX', 'XX'], {'X': 'beneath:warped_straw'}, 'beneath:warped_thatch').with_advancement('beneath:warped_straw')
rm.crafting_shaped('crafting/blackstone', ['XX', 'XX'], {'X': 'beneath:blackstone_pebble'}, 'minecraft:blackstone').with_advancement('beneath:blackstone_pebble')
rm.crafting_shapeless('crafting/blackstone_uncraft', ('minecraft:blackstone',), '4 beneath:blackstone_pebble').with_advancement('minecraft:blackstone')
rm.crafting_shaped('crafting/blackstone_bricks', ['XMX', 'MXM', 'XMX'], {'X': 'beneath:blackstone_brick', 'M': '#tfc:mortar'}, (4, 'minecraft:polished_blackstone_bricks')).with_advancement('beneath:blackstone_brick')
rm.crafting_shaped('crafting/nether_bricks', ['XMX', 'MXM', 'XMX'], {'X': 'minecraft:nether_brick', 'M': '#tfc:mortar'}, (4, 'minecraft:nether_bricks')).with_advancement('minecraft:nether_brick')
damage_shapeless(rm, 'crafting/blackstone_brick', ('beneath:blackstone_pebble', '#tfc:chisels'), 'beneath:blackstone_brick').with_advancement('beneath:blackstone_pebble')
Expand All @@ -23,6 +26,7 @@ def generate(rm: ResourceManager):
rm.crafting_shapeless('crafting/agonizing_fertilizer', tuple('beneath:pure_%s' % n for n in NUTRIENTS), 'beneath:agonizing_fertilizer').with_advancement('beneath:pure_flame')
rm.crafting_shapeless('crafting/cursed_hide_change', ('beneath:cursed_hide', 'tfc:powder/flux', 'tfc:powder/flux', 'minecraft:white_dye'), 'tfc:large_raw_hide').with_advancement('beneath:cursed_hide')
rm.crafting_shapeless('crafting/hellbricks', ('minecraft:nether_bricks', 'minecraft:magma_cream'), 'beneath:hellbricks').with_advancement('minecraft:magma_cream')
damage_shapeless(rm, 'crafting/juicer', ('#forge:leather', '#forge:leather', '#forge:leather', '#tfc:knives', '#forge:rods/wooden'), 'beneath:juicer').with_advancement('#forge:leather')

### HEATING RECIPES ###
metal_data = TFC_METALS['gold']
Expand Down Expand Up @@ -219,3 +223,26 @@ def item_stack_ingredient(data_in: Json):
return {'ingredient': {'tag': item}, 'count': count}
else:
return {'ingredient': {'item': item}, 'count': count}

def simple_pot_recipe(rm: ResourceManager, name_parts: utils.ResourceIdentifier, ingredients: Json, fluid: str, output_fluid: str = None, output_items: Json = None, duration: int = 2000, temp: int = 300):
rm.recipe(('pot', name_parts), 'tfc:pot', {
'ingredients': ingredients,
'fluid_ingredient': fluid_stack_ingredient(fluid),
'duration': duration,
'temperature': temp,
'fluid_output': fluid_stack(output_fluid) if output_fluid is not None else None,
'item_output': [utils.item_stack(item) for item in output_items] if output_items is not None else None
})

def fluid_ingredient(data_in: Json) -> Json:
if isinstance(data_in, dict):
return data_in
elif isinstance(data_in, List):
return [*utils.flatten_list([fluid_ingredient(e) for e in data_in])]
else:
fluid, tag, amount, _ = utils.parse_item_stack(data_in, False)
if tag:
return {'tag': fluid}
else:
return fluid

13 changes: 9 additions & 4 deletions resources/world_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@ def generate(rm: ResourceManager):
configured_placed_feature(rm, 'burpflower', 'minecraft:simple_block', {'to_place': simple_state_provider('beneath:burpflower')}, decorate_replaceable(), decorate_would_survive('beneath:burpflower'), decorate_air())
configured_placed_feature(rm, 'burpflower_patch', 'minecraft:random_patch', random_config('beneath:burpflower', 5, 5, 1), decorate_chance(20), decorate_every_layer(1), decorate_biome())

for shroom in MUSHROOMS:
configured_placed_feature(rm, shroom, 'minecraft:simple_block', {'to_place': simple_state_provider('beneath:mushroom/%s' % shroom)}, decorate_replaceable(), decorate_would_survive('beneath:mushroom/%s' % shroom), decorate_air())
configured_placed_feature(rm, '%s_patch' % shroom, 'minecraft:random_patch', random_config('beneath:%s' % shroom, 5, 5, 1), decorate_chance(60), decorate_every_layer(1), decorate_biome())

for rock, rock_data in ROCKS.items():
if rock_data.category == 'igneous_extrusive':
configured_placed_feature(rm, 'magma_' + rock, 'minecraft:ore', {'discard_chance_on_air_exposure': 0, 'size': 33, 'targets': [{'state': utils.block_state('tfc:rock/magma/%s' % rock), 'target': {'block': 'minecraft:netherrack', 'predicate_type': 'minecraft:block_match'}}]}, decorate_chance(10), decorate_count(4), decorate_square(), decorate_range(36, 27), decorate_biome())
configured_placed_feature(rm, 'magma_' + rock, 'minecraft:ore', {'discard_chance_on_air_exposure': 0, 'size': 33, 'targets': [{'state': utils.block_state('tfc:rock/magma/%s' % rock), 'target': {'block': 'minecraft:netherrack', 'predicate_type': 'minecraft:block_match'}}]}, decorate_chance(10), decorate_count(4), decorate_square(), decorate_range(27, 36), decorate_biome())

configured_placed_feature(rm, 'tree/crimson', 'tfc:random_tree', {
'structures': ['beneath:crimson/%s' % i for i in range(1, 17)],
Expand Down Expand Up @@ -130,15 +134,16 @@ def generate(rm: ResourceManager):
'blocks': [{'replace': ['minecraft:netherrack'], 'with': [{'weight': 1, 'block': 'beneath:crackrack'}]}]
})

rm.placed_feature_tag('mushrooms', *['beneath:%s_patch' % shr for shr in MUSHROOMS])
rm.placed_feature_tag('veins', *['beneath:vein/%s' % v for v in ('quartz', 'sylvite', 'normal_gold', 'deep_gold', 'cursecoal', 'crackrack_pipe')])
rm.placed_feature_tag('underground_decoration', '#beneath:veins', *['beneath:magma_%s' % r for r, d in ROCKS.items() if d.category == 'igneous_extrusive'], 'beneath:amethyst_geode')
rm.placed_feature_tag('everywhere_but_basalt_deltas', 'beneath:nether_pebble_patch', 'beneath:blackstone_boulders', 'beneath:cobble_boulders', 'beneath:sulfur_patch')

rm.placed_feature_tag('vegetal_decoration/nether_wastes', 'beneath:nether_spikes', 'beneath:glowstone_spikes')
rm.placed_feature_tag('vegetal_decoration/nether_wastes', 'beneath:nether_spikes', 'beneath:glowstone_spikes', '#beneath:mushrooms')
rm.placed_feature_tag('surface_structures/nether_wastes', 'beneath:nether_spikes', 'beneath:glowstone_spikes')

rm.placed_feature_tag('vegetal_decoration/crimson_forest', 'beneath:tree/crimson', '#beneath:everywhere_but_basalt_deltas', 'beneath:gleamflower_patch', 'beneath:burpflower_patch')
rm.placed_feature_tag('vegetal_decoration/warped_forest', 'beneath:tree/warped', '#beneath:everywhere_but_basalt_deltas', 'beneath:gleamflower_patch', 'beneath:burpflower_patch')
rm.placed_feature_tag('vegetal_decoration/crimson_forest', 'beneath:tree/crimson', '#beneath:everywhere_but_basalt_deltas', 'beneath:gleamflower_patch', 'beneath:burpflower_patch', '#beneath:mushrooms')
rm.placed_feature_tag('vegetal_decoration/warped_forest', 'beneath:tree/warped', '#beneath:everywhere_but_basalt_deltas', 'beneath:gleamflower_patch', 'beneath:burpflower_patch', '#beneath:mushrooms')

rm.placed_feature_tag('surface_structures/basalt_deltas', 'beneath:delta')
rm.placed_feature_tag('vegetal_decoration/basalt_deltas', 'beneath:blackstone_pebble_patch')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.eerussianguy.beneath.client.render.BeneathSignRenderer;
import com.eerussianguy.beneath.client.render.HellforgeRenderer;
import com.eerussianguy.beneath.client.screen.HellforgeScreen;
import com.eerussianguy.beneath.client.screen.JuicerScreen;
import com.eerussianguy.beneath.common.blockentities.BeneathBlockEntities;
import com.eerussianguy.beneath.common.blocks.BeneathBlocks;
import com.eerussianguy.beneath.common.blocks.Stem;
Expand Down Expand Up @@ -61,6 +62,7 @@ private static void setup(FMLClientSetupEvent event)
BeneathBlocks.WOODS.values().forEach(map -> ItemProperties.register(map.get(BARREL).get().asItem(), Helpers.identifier("sealed"), (stack, level, entity, unused) -> stack.hasTag() ? 1.0f : 0f));

MenuScreens.register(BeneathContainerTypes.HELLFORGE_CONTAINER.get(), HellforgeScreen::new);
MenuScreens.register(BeneathContainerTypes.JUICER_CONTAINER.get(), JuicerScreen::new);

for (Stem stem : Stem.VALUES)
{
Expand All @@ -75,6 +77,7 @@ private static void setup(FMLClientSetupEvent event)

Stream.of(BeneathBlocks.GLEAMFLOWER, BeneathBlocks.BURPFLOWER)
.map(RegistryObject::get).forEach(b -> ItemBlockRenderTypes.setRenderLayer(b, cutout));
BeneathBlocks.SHROOMS.values().forEach(reg -> ItemBlockRenderTypes.setRenderLayer(reg.get(), cutout));

BeneathBlocks.WOODS.values().forEach(map -> {
Stream.of(SAPLING, DOOR, TRAPDOOR, FENCE, FENCE_GATE, BUTTON, PRESSURE_PLATE, SLAB, STAIRS, TWIG, BARREL, SCRIBING_TABLE, POTTED_SAPLING).forEach(type -> ItemBlockRenderTypes.setRenderLayer(map.get(type).get(), cutout));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.eerussianguy.beneath.client.screen;

import com.eerussianguy.beneath.common.container.JuicerContainer;
import com.eerussianguy.beneath.common.items.JuicerItem;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Inventory;

import net.dries007.tfc.client.screen.TFCContainerScreen;
import net.dries007.tfc.common.capabilities.Capabilities;
import net.dries007.tfc.util.Tooltips;

public class JuicerScreen extends TFCContainerScreen<JuicerContainer>
{
public JuicerScreen(JuicerContainer container, Inventory playerInventory, Component name)
{
super(container, playerInventory, name, INVENTORY_1x1);
}

@Override
protected void renderLabels(GuiGraphics graphics, int x, int y)
{
super.renderLabels(graphics, x, y);
menu.getInventory().getStackInSlot(0).getCapability(Capabilities.FLUID_ITEM).ifPresent(cap -> {
if (!cap.getFluidInTank(0).isEmpty())
{
drawCenteredLine(graphics, Tooltips.fluidUnitsAndCapacityOf(cap.getFluidInTank(0), JuicerItem.CAPACITY), 14);
}
});
}
}
Loading

0 comments on commit d017d84

Please sign in to comment.