Skip to content

Commit

Permalink
Added color tint to rotten food
Browse files Browse the repository at this point in the history
  • Loading branch information
alcatrazEscapee committed Aug 25, 2019
1 parent 13f918f commit 6d019e7
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 14 deletions.
4 changes: 4 additions & 0 deletions src/main/java/net/dries007/tfc/ConfigTFC.java
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,10 @@ public static class ClientCFG
@Config.Comment("Should the prospectors pick output to the actionbar? (the space just above the hotbar)")
@Config.LangKey("config." + MOD_ID + ".client.propickOutputToActionBar")
public boolean propickOutputToActionBar = true;

@Config.Comment("The color to render on top of rotten food. Express as a 265 bit color value: 0xFFFFFF = white, 0x000000 = black")
@Config.LangKey("config." + MOD_ID + ".client.rottenFoodOverlayColor")
public int rottenFoodOverlayColor = 0x88CC33;
}

public static class WorldCFG
Expand Down
36 changes: 23 additions & 13 deletions src/main/java/net/dries007/tfc/client/ClientRegisterEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@
import net.minecraft.client.renderer.color.BlockColors;
import net.minecraft.client.renderer.color.IBlockColor;
import net.minecraft.client.renderer.color.ItemColors;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.*;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.ColorizerGrass;
Expand All @@ -36,10 +33,14 @@
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import net.dries007.tfc.ConfigTFC;
import net.dries007.tfc.api.capability.IMoldHandler;
import net.dries007.tfc.api.capability.food.CapabilityFood;
import net.dries007.tfc.api.capability.food.IFood;
import net.dries007.tfc.api.registries.TFCRegistries;
import net.dries007.tfc.api.types.Metal;
import net.dries007.tfc.api.types.Ore;
Expand Down Expand Up @@ -243,7 +244,7 @@ public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack)
@SideOnly(Side.CLIENT)
public static void registerColorHandlerBlocks(ColorHandlerEvent.Block event)
{
BlockColors blockcolors = event.getBlockColors();
BlockColors blockColors = event.getBlockColors();

// Grass Colors
IBlockColor grassColor = (state, worldIn, pos, tintIndex) -> {
Expand All @@ -268,20 +269,20 @@ public static void registerColorHandlerBlocks(ColorHandlerEvent.Block event)
return ColorizerGrass.getGrassColor(0.5, 0.5);
};

blockcolors.registerBlockColorHandler(grassColor, BlocksTFC.PEAT_GRASS);
blockcolors.registerBlockColorHandler(grassColor, BlocksTFC.getAllBlockRockVariants().stream().filter(x -> x.getType().isGrass).toArray(BlockRockVariant[]::new));
blockColors.registerBlockColorHandler(grassColor, BlocksTFC.PEAT_GRASS);
blockColors.registerBlockColorHandler(grassColor, BlocksTFC.getAllBlockRockVariants().stream().filter(x -> x.getType().isGrass).toArray(BlockRockVariant[]::new));
// This is talking about tall grass vs actual grass blocks
blockcolors.registerBlockColorHandler(grassColor, BlocksTFC.getAllGrassBlocks().toArray(new BlockPlantTFC[0]));
blockColors.registerBlockColorHandler(grassColor, BlocksTFC.getAllGrassBlocks().toArray(new BlockPlantTFC[0]));

blockcolors.registerBlockColorHandler(foliageColor, BlocksTFC.getAllLeafBlocks().toArray(new Block[0]));
blockcolors.registerBlockColorHandler(foliageColor, BlocksTFC.getAllPlantBlocks().toArray(new BlockPlantTFC[0]));
blockColors.registerBlockColorHandler(foliageColor, BlocksTFC.getAllLeafBlocks().toArray(new Block[0]));
blockColors.registerBlockColorHandler(foliageColor, BlocksTFC.getAllPlantBlocks().toArray(new BlockPlantTFC[0]));

blockcolors.registerBlockColorHandler(foliageColor, BlocksTFC.getAllFruitTreeLeavesBlocks().toArray(new Block[0]));
blockColors.registerBlockColorHandler(foliageColor, BlocksTFC.getAllFruitTreeLeavesBlocks().toArray(new Block[0]));

blockcolors.registerBlockColorHandler((state, worldIn, pos, tintIndex) -> BlockFarmlandTFC.TINT[state.getValue(BlockFarmlandTFC.MOISTURE)],
blockColors.registerBlockColorHandler((state, worldIn, pos, tintIndex) -> BlockFarmlandTFC.TINT[state.getValue(BlockFarmlandTFC.MOISTURE)],
BlocksTFC.getAllBlockRockVariants().stream().filter(x -> x.getType() == Rock.Type.FARMLAND).toArray(BlockRockVariant[]::new));

blockcolors.registerBlockColorHandler((state, worldIn, pos, tintIndex) ->
blockColors.registerBlockColorHandler((state, worldIn, pos, tintIndex) ->
worldIn != null && pos != null ? BiomeColorHelper.getWaterColorAtPos(worldIn, pos) : 0,
BlocksTFC.getAllFluidBlocks().stream().filter(x -> x.getDefaultState().getMaterial() == Material.WATER).toArray(BlockFluidBase[]::new));
}
Expand Down Expand Up @@ -315,6 +316,15 @@ public static void registerColorHandlerItems(ColorHandlerEvent.Item event)
itemColors.registerItemColorHandler((stack, tintIndex) ->
event.getBlockColors().colorMultiplier(((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()), null, null, tintIndex),
BlocksTFC.getAllGrassBlocks().toArray(new BlockPlantTFC[0]));

itemColors.registerItemColorHandler((stack, tintIndex) -> {
IFood food = stack.getCapability(CapabilityFood.CAPABILITY, null);
if (food != null)
{
return food.isRotten() ? ConfigTFC.CLIENT.rottenFoodOverlayColor : 0xFFFFFF;
}
return 0xFFFFFF;
}, ForgeRegistries.ITEMS.getValuesCollection().stream().filter(x -> x instanceof ItemFood).toArray(Item[]::new));
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/assets
Submodule assets updated 1 files
+3 −0 tfc/lang/en_us.lang

0 comments on commit 6d019e7

Please sign in to comment.