use of net.dries007.tfc.api.capability.IMoldHandler in project firmalife by eerussianguy.
the class UnmoldRecipeFL method matches.
public boolean matches(@Nonnull InventoryCrafting inv, @Nonnull World world) {
boolean foundMold = false;
for (int slot = 0; slot < inv.getSizeInventory(); ++slot) {
ItemStack stack = inv.getStackInSlot(slot);
if (!stack.isEmpty()) {
if (!(stack.getItem() instanceof ItemMetalMalletMold)) {
return false;
}
ItemMetalMalletMold moldItem = (ItemMetalMalletMold) stack.getItem();
IFluidHandler cap = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null);
if (!(cap instanceof IMoldHandler)) {
return false;
}
IMoldHandler moldHandler = (IMoldHandler) cap;
if (moldHandler.isMolten()) {
return false;
}
Metal metal = moldHandler.getMetal();
if (metal == null || !moldItem.getToolName().equals(this.type) || foundMold) {
return false;
}
foundMold = true;
}
}
return foundMold;
}
use of net.dries007.tfc.api.capability.IMoldHandler in project firmalife by eerussianguy.
the class ClientRegisterEventsFL method registerModels.
@SubscribeEvent
public static void registerModels(ModelRegistryEvent event) {
// Setting the model resource location for items
for (Item i : ItemsFL.getAllEasyItems()) ModelLoader.setCustomModelResourceLocation(i, 0, new ModelResourceLocation(i.getRegistryName().toString()));
for (ItemFruitDoor i : ItemsFL.getAllFruitDoors()) ModelLoader.setCustomModelResourceLocation(i, 0, new ModelResourceLocation(i.getRegistryName().toString()));
for (ItemBlock ib : BlocksFL.getAllIBs()) ModelLoader.setCustomModelResourceLocation(ib, 0, new ModelResourceLocation(ib.getRegistryName().toString(), "normal"));
for (BlockFruitTreeLeaves leaves : BlocksFL.getAllFruitLeaves()) ModelLoader.setCustomStateMapper(leaves, new StateMap.Builder().ignore(BlockFruitTreeLeaves.DECAYABLE).ignore(BlockFruitTreeLeaves.HARVESTABLE).build());
ModelLoader.setCustomStateMapper(BlocksFL.SPOUT, new StateMap.Builder().ignore(StatePropertiesFL.WATERED).ignore(StatePropertiesFL.NEEDS_SOURCE).build());
ModelLoader.setCustomStateMapper(BlocksFL.SPRINKLER, new StateMap.Builder().ignore(StatePropertiesFL.WATERED).ignore(StatePropertiesFL.NEEDS_SOURCE).build());
ModelLoader.setCustomStateMapper(BlocksFL.TURNTABLE, new StateMap.Builder().ignore(StatePropertiesFL.CLAY).build());
ModelLoader.setCustomModelResourceLocation(ItemsFL.CHEESECLOTH, 0, new ModelResourceLocation(ItemsFL.CHEESECLOTH.getRegistryName(), "inventory"));
ModelLoader.setCustomModelResourceLocation(ItemsFL.CRACKED_COCONUT, 0, new ModelResourceLocation(ItemsFL.CRACKED_COCONUT.getRegistryName(), "inventory"));
ModelLoader.setCustomModelResourceLocation(ItemsFL.ITEM_CINNAMON_SAPLING, 0, new ModelResourceLocation(ItemsFL.ITEM_CINNAMON_SAPLING.getRegistryName().toString()));
ModelLoader.setCustomModelResourceLocation(ItemsFL.ITEM_QUAD_PLANTER, 0, new ModelResourceLocation(ItemsFL.ITEM_QUAD_PLANTER.getRegistryName().toString(), "inventory"));
ModelLoader.setCustomModelResourceLocation(ItemsFL.ITEM_LARGE_PLANTER, 0, new ModelResourceLocation(ItemsFL.ITEM_LARGE_PLANTER.getRegistryName().toString(), "inventory"));
// Mallet mold
ItemMetalMalletMold item = ItemsFL.malletMold;
ModelBakery.registerItemVariants(item, new ModelResourceLocation(item.getRegistryName().toString()));
ModelBakery.registerItemVariants(item, TFCRegistries.METALS.getValuesCollection().stream().filter(Metal.ItemType.PROPICK_HEAD::hasMold).map(x -> new ModelResourceLocation(FirmaLife.MOD_ID + ":" + x.getRegistryName().getPath() + "_" + item.getRegistryName().getPath())).toArray(ModelResourceLocation[]::new));
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() {
private final ModelResourceLocation FALLBACK = new ModelResourceLocation(item.getRegistryName().toString());
@Override
@Nonnull
public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack) {
IFluidHandler cap = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null);
if (cap instanceof IMoldHandler) {
Metal metal = ((IMoldHandler) cap).getMetal();
if (metal != null) {
return new ModelResourceLocation(FirmaLife.MOD_ID + ":" + metal.getRegistryName().getPath() + "_" + stack.getItem().getRegistryName().getPath());
}
}
return FALLBACK;
}
});
// use vanilla stem rendering for StemCrops
for (BlockStemCrop block : BlocksFL.getAllCropBlocks()) ModelLoader.setCustomStateMapper(block, new VanillaStemStateMapper());
for (BlockFruitDoor door : BlocksFL.getAllFruitDoors()) ModelLoader.setCustomStateMapper(door, new StateMap.Builder().ignore(BlockDoor.POWERED).build());
for (BlockFruitFenceGate gate : BlocksFL.getAllFruitFenceGates()) ModelLoader.setCustomStateMapper(gate, new StateMap.Builder().ignore(BlockFenceGate.POWERED).build());
ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LOG, new StateMap.Builder().ignore(StatePropertiesFL.CAN_GROW).build());
ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LEAVES, new StateMap.Builder().ignore(BlockLeaves.DECAYABLE).build());
ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_SAPLING, new StateMap.Builder().ignore(BlockSaplingTFC.STAGE).build());
for (Block block : BlocksFL.getAllFluidBlocks()) ModelLoader.setCustomStateMapper(block, new StateMap.Builder().ignore(BlockFluidBase.LEVEL).build());
ModelLoader.setCustomStateMapper(BlocksFL.GREENHOUSE_DOOR, new StateMap.Builder().ignore(BlockDoor.POWERED).build());
ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LOG, new StateMap.Builder().ignore(StatePropertiesFL.CAN_GROW).build());
ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LEAVES, new StateMap.Builder().ignore(BlockLeaves.DECAYABLE).build());
ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_SAPLING, new StateMap.Builder().ignore(BlockSaplingTFC.STAGE).build());
ModelLoader.setCustomStateMapper(BlocksFL.QUAD_PLANTER, new QuadPlanterStateMapper());
ModelLoader.setCustomStateMapper(BlocksFL.LARGE_PLANTER, new LargePlanterStateMapper());
ClientRegistry.bindTileEntitySpecialRenderer(TEOven.class, new TESROven());
ClientRegistry.bindTileEntitySpecialRenderer(TEString.class, new TESRString());
ClientRegistry.bindTileEntitySpecialRenderer(TELeafMat.class, new TESRLeafMat());
ClientRegistry.bindTileEntitySpecialRenderer(TETurntable.class, new TESRTurntable());
}
use of net.dries007.tfc.api.capability.IMoldHandler in project firmalife by eerussianguy.
the class UnmoldRecipeFL method getCraftingResult.
@Nonnull
public ItemStack getCraftingResult(InventoryCrafting inv) {
ItemStack moldStack = null;
for (int slot = 0; slot < inv.getSizeInventory(); ++slot) {
ItemStack stack = inv.getStackInSlot(slot);
if (!stack.isEmpty()) {
if (!(stack.getItem() instanceof ItemMetalMalletMold)) {
return ItemStack.EMPTY;
}
ItemMetalMalletMold tmp = (ItemMetalMalletMold) stack.getItem();
if (!tmp.getToolName().equals(this.type) || moldStack != null) {
return ItemStack.EMPTY;
}
moldStack = stack;
}
}
if (moldStack != null) {
IFluidHandler moldCap = moldStack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null);
if (moldCap instanceof IMoldHandler) {
IMoldHandler moldHandler = (IMoldHandler) moldCap;
if (!moldHandler.isMolten() && moldHandler.getAmount() == 100) {
return this.getOutputItem(moldHandler);
}
}
}
return ItemStack.EMPTY;
}
use of net.dries007.tfc.api.capability.IMoldHandler in project firmalife by eerussianguy.
the class UnmoldRecipeFL method getOutputItem.
public ItemStack getOutputItem(IMoldHandler moldHandler) {
Metal m = moldHandler.getMetal();
if (m != null) {
ItemStack output = new ItemStack(ItemsFL.getMetalMalletHead(m));
IItemHeat heat = output.getCapability(CapabilityItemHeat.ITEM_HEAT_CAPABILITY, null);
if (heat != null) {
heat.setTemperature(moldHandler.getTemperature());
}
return output;
} else {
return ItemStack.EMPTY;
}
}
Aggregations