Skip to content

Commit

Permalink
Merge pull request bruberu#1 from GTModpackTeam/master
Browse files Browse the repository at this point in the history
  • Loading branch information
tier940 committed Jan 17, 2023
2 parents 41d0a36 + e5f612e commit 21d408a
Show file tree
Hide file tree
Showing 814 changed files with 8,649 additions and 2,098 deletions.
77 changes: 77 additions & 0 deletions FEATURES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
This provides a list of features that you can expect in GregTechFoodOption! (As of 1.6.2)

## Machines:
There are several important machines that are included with this mod. These are:
- Slicing Machines
- Cuisine Assemblers (used for certain complex foods, mostly larger breaded meals)
- Microwaves (which can be used for certain specialty food items, namely stews at the moment)
- Mob Age Sorters (which can sort mobs by age, useful for automation)
- Mob Exterminators (obvious)
- Mob Extractors (which can extract fluids or items from entities, such as milk, automatically)
- Farmers (which automatically farm vanilla and GTFO crops)

In 0.x versions, there were also Small Bio Reactors, which allowed users to run certain Bio Reactor recipes from GCYL from HV-IV, which had several uses in GTFO chains.

Notably, there is one main class of multiblock in GTFO as of now, the **Baking Ovens**. They range from primitive and steam versions to electric, and are used for baking certain food items. As one reaches higher tiers, one gets better access to faster speeds and parallel recipes.

## Blocks:
The main blocks featured in GregTechFoodOption are crop blocks, currently consisting of the following types:
- Tomatoes
- Cucumbers
- Grapes
- Onions (a root-based crop)
- Soy

Furthermore, some of these crops are root-based crops, which grows in a pattern where the actual crop may only be harvested at an intermediate stage of growth, while the seeds can be collected only when the crop is fully grown.
Finally, these crops only give back their seeds through their products; if you plant one in the wrong place, you will have to wait for it to grow to get the seed back (as a germinated seed obviously can't just be ripped out of the ground as normal).
These crops can currently be automatically harvested via the EnderIO farming station, although a GregTechFoodOption Crop Manager tile is currently in development.

A large selection of various trees are included in GregTech Food Option as well, to be used for generating various food items, including bananas, apricots, olives, and more!
Each also have their own natural world generation (albeit somewhat rare compared to vanilla trees) and planks (although not any fences, doors, or other variants of miscellaneous wooden items yet).

There also a few casing blocks used for multiblocks, namely:
- Food-Safe Bismuth Bronze Casing (used for the Electric Baking Oven)
- Adobe Bricks (used for the Baking Oven, crafted much like Primitive Bricks)

## Items:
Of course, the main attraction of GTFO is the food that you can get from it. These include:
- Alcohols (at least Vodka and Leninade)
- New breads (buns and baguettes from GT5u are added)
- Cheeses (cheddar and mozzarella are currently accessible, and in 0.x, one could also make gorgonzola)
- Kebabs (of quite a lot of different types, thanks to BioAstroiner for implementing them)
- Hot stews (which are accessible from microwaves)
- Chips and fries
- Pizzas (veggie, mince meat, and cheese are currently implemented)
- Sandwiches (of small (hamburger), normal and large sizes)
- Chum (is very fum!)
As I develop more ingredients, hopefully, I can begin adding more specialty dishes to add more flavor to this lineup.

Some other food items are only accessible as compatibility with other mods, or in older versions. These include:
- Larger s'more s'mingots (and s'moguses!), in compatibility with NuclearCraft: Overhauled (but not normal NuclearCraft!)
- Popcorn (only in 0.x)
- Mineral Water (a joke item that gives creative flight after an extraordinarily complex chain, only in 0.x)

There are also a few tools associated with the mod:
- Rolling pins (which are used for some bread recipes and paper)
- Electric butchery knives

Finally, there include many miscellaneous non-consumable items and fluids, like:
- Seeds
- Various ingredients (such as tomatoes, sliced bread for sandwiches, or olive oil)
- And of course, the many components of recipe chains

## Recipes:
Along with this, some recipes from vanilla, CEu, and other mods are modified within the mod, if certain configuration options are turned on (they used to be turned on by default, but people did not like them very much).

- Actually Additions coffee is modified to be created in a considerably more realistic manner
- NuclearCraft s'mores are modified to be created also in a considerably more realistic manner
- Bananas, as one may expect, have a chain to extract potassium from them
- Paper recipes are modified to use GTFO's rolling pin tool
- Bread is modified to use a more realistic chain
- Almost all cooked vanilla items must now be processed in the Baking Oven
- Purple Drink has a manual crafting recipe (currently only in 0.x)
- Seeds may be crafted through Unidentified GTFO Seeds, which can be attained from grass (this was done to prevent inventory clutter while removing grass)

## Other:
General miscellaneous features include:
- Italian buffalo, which spawn near watery biomes; their milk may be used to create mozzarella
68 changes: 54 additions & 14 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ buildscript {
repositories {
mavenCentral()
maven { url = "http://maven.minecraftforge.net/" }
maven { url = "https://repo.spongepowered.org/maven" }
}
dependencies {
classpath("net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT")
classpath("org.spongepowered:mixingradle:0.6-SNAPSHOT")
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'org.spongepowered.mixin'

version = "1.12.2-1.6.0"
version = "1.12.2-1.8.3"
group = "bruberu"
archivesBaseName = "GregTech Food Option"

Expand All @@ -25,12 +28,15 @@ minecraft {
makeObfSourceJar = false
replace("@VERSION@", project.version)
replaceIn("GregTechFoodOption.java")
}

jar {
manifest {
attributes 'FMLAT': 'gtfo_at.cfg'
}
def args = [
"-Dfml.coreMods.load=gregtechfoodoption.GTFOMixinPlugin",
"-Dmixin.hotSwap=true",
"-Dmixin.checks.interfaces=true",
"-Dmixin.debug.export=true"
]
clientJvmArgs.addAll(args)
serverJvmArgs.addAll(args)
}

repositories {
Expand Down Expand Up @@ -90,32 +96,53 @@ repositories {
maven {
url "http://www.ryanliptak.com/maven/"
}
maven {
url "https://maven.cleanroommc.com"
}

}

dependencies {
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'

deobfCompile "CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.1.20.554"
deobfCompile "mezz.jei:jei_1.12.2:+"
//deobfCompile "curse.maven:gregtechceu-557242:3612824"
deobfCompile "team.chisel.ctm:CTM:MC1.12.2-1.0.2.31"
deobfCompile "team.chisel.ctm:CTM:MC${project.minecraft.version}-1.0.2.31"
//provided files("libs/gregicality-1.12.2-0.23.1.jar")
deobfCompile "codechicken:ChickenASM:1.12-1.0.2.9"
deobfCompile "codechicken-lib-1-8:CodeChickenLib-1.12.2:3.2.3.358:universal"
deobfCompile "mcjty.theoneprobe:TheOneProbe-1.12:1.12-1.4.23-16"
deobfCompile "codechicken-lib-1-8:CodeChickenLib-${project.minecraft.version}:3.2.3.358:universal"
deobfCompile "mcjty.theoneprobe:TheOneProbe-1.12:1.12-1.4.28-17"

//deobfCompile "nuclearcraft-overhauled:NuclearCraft:2o.6.0:1.12.2"
deobfCompile "de.ellpeck.actuallyadditions:ActuallyAdditions:1.12.2-r144"
deobfCompile "de.ellpeck.actuallyadditions:ActuallyAdditions:${project.minecraft.version}-r144"
//provided files("libs/AppleCore-mc1.12.2-3.4.0.jar")
deobfCompile "applecore:AppleCore:1.12.2-3.1.5:deobf"
deobfCompile "applecore:AppleCore:${project.minecraft.version}-3.1.5:deobf"

deobfCompile "zone.rong:mixinbooter:4.2"
// One day...
//compile "com.enderio.core:EnderCore:${mc_version}-0.5.76:dev"
//compile "com.enderio:EnderIO:${mc_version}-5.3.70"

deobfCompile "curse.maven:agricraft-225635:3317747"
deobfCompile "curse.maven:infinitylib-251396:3317119"
deobfCompile "curse.maven:spice-of-life-carrot-edition-277616:2959847"

compile "curse.maven:enderio-64578:3328811"
compile "curse.maven:endercore-231868:2972849"
compile "info.loenwind.autoconfig:AutoConfig:${project.minecraft.version}-1.0.2"
compile "info.loenwind.autosave:AutoSave:${project.minecraft.version}-1.0.11"


//provided files("libs/AppleSkin-mc1.12-1.0.9.jar")
//provided files("libs/NuclearCraft-2o.5.2-1.12.2.jar")

compileOnly files("etc/Pam's+HarvestCraft+1.12.2zg.jar")

//compile "curse.maven:spiceoflife-220811:2571951"

testImplementation "junit:junit:4.13.1"
implementation "org.projectlombok:lombok:1.18.16"
testImplementation 'junit:junit:4.13.2'
implementation 'org.projectlombok:lombok:1.18.24'
}

processResources {
Expand All @@ -132,10 +159,23 @@ processResources {
exclude 'mcmod.info'
}

rename("(.+_at.cfg)", "META-INF/1")
//rename("(.+_at.cfg)", "META-INF/1")
}

runClient {
jvmArgs "-Xmx3G"
}

mixin {
add sourceSets.main, "mixins.gregtechfoodoption.refmap.json"
}

jar {
manifest.attributes(
"FMLCorePlugin": "gregtechfoodoption.GTFOMixinPlugin",
"FMLCorePluginContainsFMLMod": "true",
"ForceLoadAsMod": "true",
"FMLAT": "gtfo_at.cfg",
"TweakClass": "org.spongepowered.asm.launch.MixinTweaker",
)
}
2 changes: 0 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,3 @@
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx4G
org.gradle.daemon=false
project_fancy_name = "GregTech Food Option"
project.version=1.6.0
Binary file added libs/EnderCore-1.12.2-0.5.76-core.jar
Binary file not shown.
Binary file not shown.
Binary file added libs/groovyscript-0.1.0.jar
Binary file not shown.
24 changes: 24 additions & 0 deletions src/api/java/squeek/applecore/api/food/IEdible.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package squeek.applecore.api.food;

import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;

import javax.annotation.Nonnull;

/**
* An interface for edible objects.<br>
* <br>
* Intended for use by classes that don't extend ItemFood.<br>
* <br>
* When extending ItemFood,
* {@link ItemFood#getHealAmount} (for hunger values) and
* {@link ItemFood#getSaturationModifier} (for saturation modifiers)
* should be used instead.<br>
* <br>
* Note: {@link IEdible#getFoodValues} will take precedence over the
* {@link ItemFood} methods when getting an item's food values
*/
public interface IEdible
{
FoodValues getFoodValues(@Nonnull ItemStack itemStack);
}
28 changes: 23 additions & 5 deletions src/main/java/gregtechfoodoption/ClientProxy.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,32 @@
package gregtechfoodoption;

import com.mojang.authlib.minecraft.MinecraftProfileTexture;
import gregtech.api.util.LocalizationUtils;
import gregtechfoodoption.block.GTFOMetaBlocks;
import gregtechfoodoption.entity.GTFOEntities;
import gregtechfoodoption.integration.appleskin.GTFOMetaHUDOverlay;
import gregtechfoodoption.integration.appleskin.GTFOMetaTooltipOverlay;
import gregtechfoodoption.block.GTFOMetaBlocks;
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.network.NetworkPlayerInfo;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import java.util.*;
import javax.annotation.Nonnull;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

@SideOnly(Side.CLIENT)
@Mod.EventBusSubscriber(Side.CLIENT)
Expand All @@ -39,10 +47,12 @@ public void preLoad() {

@Override
public void onLoad() {
super.onLoad();
if(Loader.isModLoaded("appleskin")) {
GTFOMetaTooltipOverlay.init();
GTFOMetaHUDOverlay.init();
}
GTFOMetaBlocks.registerColors();
}

@Override
Expand All @@ -51,8 +61,6 @@ public void onPostLoad() {
capeHoldersUUIDs.add(UUID.fromString("aaf70ec1-ac70-494f-9966-ea5933712750"));
}



@SubscribeEvent
public static void registerModels(ModelRegistryEvent event) {
//GTFOMetaBlocks.registerStateMappers();
Expand All @@ -70,4 +78,14 @@ public static void onPlayerRender(RenderPlayerEvent.Pre event) {
playerTextures.put(MinecraftProfileTexture.Type.CAPE, GTFO_CAPE_TEXTURE);
}
}

@SubscribeEvent
public static void addWaterBucketFertilizerTooltip(@Nonnull ItemTooltipEvent event) {
ItemStack itemStack = event.getItemStack();

if (itemStack.getItem().equals(Items.WATER_BUCKET)) {
event.getToolTip().add(LocalizationUtils.format("gregtechfoodoption.fluid.fertilizer", 5));
}
}

}
Loading

0 comments on commit 21d408a

Please sign in to comment.