Skip to content

Commit

Permalink
Add the new recipes and stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Atakku committed Apr 16, 2023
1 parent 69a01f5 commit 8765f54
Show file tree
Hide file tree
Showing 61 changed files with 848 additions and 462 deletions.
31 changes: 24 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/

plugins {
id 'fabric-loom' version '1.0-SNAPSHOT'
id 'fabric-loom' version '1.1-SNAPSHOT'
id 'io.github.juuxel.loom-quiltflower' version '1.7.1'
id "com.github.johnrengelman.shadow" version "7.0.0"
}
Expand Down Expand Up @@ -59,7 +59,7 @@ dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.layered() {
officialMojangMappings()
parchment("org.parchmentmc.data:parchment-1.18.1:2021.12.19@zip")
parchment("org.parchmentmc.data:parchment-1.19.2:2022.11.27@zip")
}

modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
Expand Down Expand Up @@ -116,9 +116,15 @@ dependencies {

// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation("net.fabricmc.fabric-api:fabric-api:${project.fabric_version}")
include modImplementation("teamreborn:energy:${project.tr_energy_version}") {
exclude group: "net.fabricmc.fabric-api"

// Create - dependencies are added transitively
modCompileOnly("com.simibubi.create:create-fabric-1.19.2:0.5.0f-776") {
exclude group: "net.fabricmc.fabric-api"
exclude group: "dev.onyxstudios.cardinal-components-api"
exclude group: "dev.cafeteria"
}
modLocalRuntime("maven.modrinth:lazydfu:0.1.3")
modLocalRuntime("com.terraformersmc:modmenu:4.2.0-beta.2")

internal 'com.google.code.findbugs:jsr305:3.0.2'

Expand Down Expand Up @@ -191,6 +197,17 @@ allprojects {
includeGroup "curse.maven"
}
}
maven { url = "https://maven.shedaniel.me/" } // Cloth Config, REI
maven { url = "https://dvs1.progwml6.com/files/maven/" } // JEI
maven { url = "https://maven.parchmentmc.org" } // Parchment mappings
maven { url = "https://maven.quiltmc.org/repository/release" } // Quilt Mappings
maven { url = "https://api.modrinth.com/maven" } // LazyDFU
maven { url = "https://maven.terraformersmc.com/releases/" } // Mod Menu
maven { url = "https://mvn.devos.one/snapshots/" } // Create, Porting Lib, Forge Tags, Milk Lib, Registrate
maven { url = "https://cursemaven.com" } // Forge Config API Port
maven { url = "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes
maven { url = "https://jitpack.io/" } // Mixin Extras, Fabric ASM
maven { url = "https://maven.tterrag.com/" } // Flywheel
}

// ensure everything uses UTF-8 and not some random codepage chosen by gradle
Expand Down Expand Up @@ -242,9 +259,9 @@ sourceSets {
main {
compileClasspath += sourceSets.portaforgy.output
runtimeClasspath += sourceSets.portaforgy.output
resources {
srcDir 'src/generated/resources'
}
resources.srcDirs += 'src/generated/resources'
java.srcDirs += 'src/nsmp/java'
resources.srcDirs += 'src/nsmp/res'
}
test {
compileClasspath += sourceSets.portaforgy.output
Expand Down
12 changes: 3 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
version_major=0
version_minor=0
version_patch=0
version_patch=1

artifact_group=appeng
artifact_basename=appliedenergistics2-fabric
artifact_basename=nsmp-ae2

#########################################################
# Minecraft Versions #
Expand All @@ -22,7 +22,6 @@ fabric_version=0.66.0+1.19.2
rei_version=9.1.530
wthit_version=5.9.0
jade_file_id=3903505
tr_energy_version=2.0.0-beta1
no_indium_version=1.1.0+1.19

# Set to rei or jei to pick which tooltip mod gets picked at runtime
Expand All @@ -31,19 +30,14 @@ runtime_itemlist_mod=rei

# Set to wthit or jade to pick which tooltip mod gets picked at runtime
# for the dev environment.
runtime_tooltip_mod=jade
runtime_tooltip_mod=wthit

#########################################################
# Third party dependencies
#########################################################
snakeyaml_version=1.33
directory_watcher_version=0.17.1

#########################################################
# Deployment #
#########################################################
curseforge_project=223794

#########################################################
# Gradle #
#########################################################
Expand Down
8 changes: 0 additions & 8 deletions src/main/java/appeng/api/behaviors/package-info.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
/**
* Classes to allow addons to define behavior of AE2's own devices when they have to interact with custom key types.
*
* <h3>Part implementations</h3>
* <ul>
* <li>Import bus: {@link appeng.api.behaviors.StackImportStrategy}.</li>
* <li>Export bus: {@link appeng.api.behaviors.StackExportStrategy}.</li>
* <li>Formation plane: {@link appeng.api.behaviors.PlacementStrategy}.</li>
* <li>Annihilation plane: {@link appeng.api.behaviors.PickupStrategy}.</li>
* </ul>
*
* <h3>Working with inventories</h3>
* <ul>
* <li>Building {@link appeng.api.storage.MEStorage}s from other kinds of inventories, used by the storage bus and the
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/appeng/api/ids/AEBlockIds.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public final class AEBlockIds {
public static final ResourceLocation SECURITY_STATION = id("security_station");
public static final ResourceLocation CABLE_BUS = id("cable_bus");

private static ResourceLocation id(String id) {
public static ResourceLocation id(String id) {
return new ResourceLocation(AEConstants.MOD_ID, id);
}
}
2 changes: 1 addition & 1 deletion src/main/java/appeng/api/ids/AEItemIds.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public final class AEItemIds {
public static final ResourceLocation CAPACITY_CARD = id("capacity_card");
public static final ResourceLocation FUZZY_CARD = id("fuzzy_card");

private static ResourceLocation id(String id) {
public static ResourceLocation id(String id) {
return new ResourceLocation(AEConstants.MOD_ID, id);
}
}
8 changes: 0 additions & 8 deletions src/main/java/appeng/api/parts/IPart.java
Original file line number Diff line number Diff line change
Expand Up @@ -433,12 +433,4 @@ default Object getRenderAttachmentData() {
*/
default void addEntityCrashInfo(CrashReportCategory section) {
}

/**
* This method may be implemented by a part to request a specific type of cable connection for rendering. Mechanics
* are not affected by this in any way.
*/
default AECableType getDesiredConnectionType() {
return AECableType.GLASS;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
import appeng.api.config.FullnessMode;
import appeng.api.config.FuzzyMode;
import appeng.api.config.LockCraftingMode;
import appeng.api.config.OperationMode;
import appeng.api.config.RelativeDirection;
import appeng.api.config.SchedulingMode;
import appeng.api.config.Setting;
import appeng.api.config.Settings;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,10 @@
@Environment(EnvType.CLIENT)
public class CableBusModel implements BasicUnbakedModel {

public static final ResourceLocation TRANSLUCENT_FACADE_MODEL = AppEng.makeId("part/translucent_facade");

@Override
public Collection<ResourceLocation> getDependencies() {
PartModelsInternal.freeze();
var models = new ArrayList<>(PartModelsInternal.getModels());
models.add(TRANSLUCENT_FACADE_MODEL);
return models;
}

Expand All @@ -72,8 +69,6 @@ public BakedModel bake(ModelBakery bakery, Function<Material, TextureAtlasSprite

CableBuilder cableBuilder = new CableBuilder(spriteGetter);

BakedModel translucentFacadeModel = bakery.bake(TRANSLUCENT_FACADE_MODEL, modelState);

// This should normally not be used, but we *have* to provide a particle texture
// or otherwise damage models will
// crash
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/appeng/core/AppEngBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;

import rs.neko.nsmp.ae2.CreateCompat;
import appeng.api.IAEAddonEntrypoint;
import appeng.api.parts.CableRenderMode;
import appeng.core.definitions.AEBlocks;
Expand Down Expand Up @@ -99,6 +99,9 @@ public AppEngBase() {
AEBlocks.init();
AEParts.init();

// Initialize custom items
CreateCompat.init();

// Now that item instances are available, we can initialize registries that need item instances
InitGridLinkables.init();

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/appeng/core/definitions/AEBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@ public static List<BlockDefinition<?>> getBlocks() {
return Collections.unmodifiableList(BLOCKS);
}

private static <T extends Block> BlockDefinition<T> block(String englishName, ResourceLocation id,
public static <T extends Block> BlockDefinition<T> block(String englishName, ResourceLocation id,
Supplier<T> blockSupplier) {
return block(englishName, id, blockSupplier, null);
}

private static <T extends Block> BlockDefinition<T> block(
public static <T extends Block> BlockDefinition<T> block(
String englishName,
ResourceLocation id,
Supplier<T> blockSupplier,
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/appeng/core/definitions/AEItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import java.util.function.BiFunction;
import java.util.function.Function;

import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyItem;

import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
Expand Down Expand Up @@ -61,7 +63,7 @@ public final class AEItems {
public static final ItemDefinition<Item> INVERTER_CARD = item("Inverter Card", AEItemIds.INVERTER_CARD, Upgrades::createUpgradeCardItem);
public static final ItemDefinition<Item> CAPACITY_CARD = item("Capacity Card", AEItemIds.CAPACITY_CARD, Upgrades::createUpgradeCardItem);
public static final ItemDefinition<Item> FUZZY_CARD = item("Fuzzy Card", AEItemIds.FUZZY_CARD, Upgrades::createUpgradeCardItem);

// spotless:on

public static List<ItemDefinition<?>> getItems() {
Expand All @@ -85,12 +87,12 @@ private static <T extends Item> ColoredItemDefinition<T> createColoredItems(Stri
return colors;
}

static <T extends Item> ItemDefinition<T> item(String name, ResourceLocation id,
public static <T extends Item> ItemDefinition<T> item(String name, ResourceLocation id,
Function<FabricItemSettings, T> factory) {
return item(name, id, factory, CreativeTab.INSTANCE);
}

static <T extends Item> ItemDefinition<T> item(String name, ResourceLocation id,
public static <T extends Item> ItemDefinition<T> item(String name, ResourceLocation id,
Function<FabricItemSettings, T> factory,
CreativeModeTab group) {

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/appeng/datagen/AE2DataGenerators.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import appeng.datagen.providers.models.CableModelProvider;
import appeng.datagen.providers.models.ItemModelProvider;
import appeng.datagen.providers.models.PartModelProvider;
import appeng.datagen.providers.recipes.CraftingRecipes;
import appeng.datagen.providers.tags.BlockTagsProvider;
import appeng.datagen.providers.tags.ItemTagsProvider;

Expand All @@ -45,6 +46,9 @@ public static void onGatherData(DataGenerator generator, ExistingFileHelper exis
generator.addProvider(true, new CableModelProvider(generator, existingFileHelper));
generator.addProvider(true, new PartModelProvider(generator, existingFileHelper));

// Recipes
generator.addProvider(true, new CraftingRecipes(generator));

// Must run last
generator.addProvider(true, localization);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,52 +16,53 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/

package appeng.datagen.providers.recipes;
package appeng.datagen.providers.recipes;

import java.nio.file.Path;
import java.util.Set;
import java.util.function.Consumer;

import com.google.common.collect.Sets;
import com.google.gson.JsonObject;

import net.minecraft.data.CachedOutput;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.recipes.FinishedRecipe;
import net.minecraft.resources.ResourceLocation;

import appeng.datagen.providers.IAE2DataProvider;

public abstract class AE2RecipeProvider extends net.minecraft.data.recipes.RecipeProvider implements IAE2DataProvider {

private final Path outputFolder;

public AE2RecipeProvider(DataGenerator generator) {
super(generator);
this.outputFolder = generator.getOutputFolder();
}

public void run(CachedOutput cache) {
Path path = outputFolder;
Set<ResourceLocation> set = Sets.newHashSet();
buildAE2CraftingRecipes((finishedRecipe) -> {
if (!set.add(finishedRecipe.getId())) {
throw new IllegalStateException("Duplicate recipe " + finishedRecipe.getId());
} else {
JsonObject json = finishedRecipe.serializeRecipe();
String modId = finishedRecipe.getId().getNamespace();
saveRecipe(cache, json,
path.resolve("data/" + modId + "/recipes/" + finishedRecipe.getId().getPath() + ".json"));
JsonObject jsonObject = finishedRecipe.serializeAdvancement();
if (jsonObject != null) {
modId = finishedRecipe.getId().getNamespace();
saveAdvancement(cache, jsonObject, path.resolve("data/" + modId + "/advancements/"
+ finishedRecipe.getAdvancementId().getPath() + ".json"));
}

}
});
}

protected abstract void buildAE2CraftingRecipes(Consumer<FinishedRecipe> consumer);
}
import java.nio.file.Path;
import java.util.Set;
import java.util.function.Consumer;

import com.google.common.collect.Sets;
import com.google.gson.JsonObject;

import net.minecraft.data.CachedOutput;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.recipes.FinishedRecipe;
import net.minecraft.resources.ResourceLocation;

import appeng.datagen.providers.IAE2DataProvider;

public abstract class AE2RecipeProvider extends net.minecraft.data.recipes.RecipeProvider implements IAE2DataProvider {

private final Path outputFolder;

public AE2RecipeProvider(DataGenerator generator) {
super(generator);
this.outputFolder = generator.getOutputFolder();
}

public void run(CachedOutput cache) {
Path path = outputFolder;
Set<ResourceLocation> set = Sets.newHashSet();
buildAE2CraftingRecipes((finishedRecipe) -> {
if (!set.add(finishedRecipe.getId())) {
throw new IllegalStateException("Duplicate recipe " + finishedRecipe.getId());
} else {
JsonObject json = finishedRecipe.serializeRecipe();
String modId = finishedRecipe.getId().getNamespace();
saveRecipe(cache, json,
path.resolve("data/" + modId + "/recipes/" + finishedRecipe.getId().getPath() + ".json"));
JsonObject jsonObject = finishedRecipe.serializeAdvancement();
if (jsonObject != null) {
modId = finishedRecipe.getId().getNamespace();
saveAdvancement(cache, jsonObject, path.resolve("data/" + modId + "/advancements/"
+ finishedRecipe.getAdvancementId().getPath() + ".json"));
}

}
});
}

protected abstract void buildAE2CraftingRecipes(Consumer<FinishedRecipe> consumer);
}

Loading

0 comments on commit 8765f54

Please sign in to comment.