Skip to content

Commit

Permalink
Initial NeoForge 1.20.2 work
Browse files Browse the repository at this point in the history
  • Loading branch information
GirafiStudios committed Dec 7, 2023
1 parent ec5e374 commit ad0dcf3
Show file tree
Hide file tree
Showing 160 changed files with 867 additions and 1,004 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ pip-log.txt
.gradle/
build/
run/
runs/
eclipse/
CREDITS-fml.txt
forge-*-*-changelog.txt
Expand Down
97 changes: 43 additions & 54 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
plugins {
id 'maven-publish'
id 'java-library'
id 'eclipse'
id 'idea'
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.0.57'
}

java.toolchain.languageVersion = JavaLanguageVersion.of(17)
Expand All @@ -25,66 +27,53 @@ base {
archivesName = "Aquaculture"
}

minecraft {
mappings channel: 'official', version: project.minecraft_version
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
enableIdeaPrepareRuns = true
copyIdeResources = true
generateRunFolders = true

runs {
client {
workingDirectory project.file('run')

mods {
"${mod_id}" {
source sourceSets.main
}
}
}
server {
workingDirectory project.file('run')

mods {
"${mod_id}" {
source sourceSets.main
}
}
}
data {
workingDirectory project.file('run')
args '--mod', 'aquaculture', '--all', '--output', file("src/generated/resources/"), '--existing', file("src/main/resources/")
mods {
"${mod_id}" {
source sourceSets.main
}
}
}
minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg')

runs {
configureEach {
systemProperty 'forge.logging.markers', 'REGISTRIES'
systemProperty 'forge.logging.console.level', 'debug'

modSource project.sourceSets.main
}

client {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
}

server {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
programArgument '--nogui'
}

gameTestServer {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
}

data {
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
}
}

dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-forge-${minecraft_version}:${ct_version}")
implementation "net.neoforged:neoforge:${neo_version}"
//compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
//compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
//runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}")
//compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-forge-${minecraft_version}:${ct_version}")
}

def resourceTargets = ['META-INF/mods.toml']
def replaceProperties = [
minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range,
forge_version: forge_version, forge_version_range: forge_version_range,
loader_version_range: loader_version_range,
mod_version: mod_version,
]

processResources {
tasks.withType(ProcessResources).configureEach {
var replaceProperties = [
minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range,
neo_version : neo_version, neo_version_range: neo_version_range,
loader_version_range: loader_version_range,
mod_id : mod_id, mod_version: mod_version, pack_format_number: pack_format_number
]
inputs.properties replaceProperties
replaceProperties.put 'project', project

filesMatching(resourceTargets) {
expand replaceProperties
filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
expand replaceProperties + [project: project]
}
}

Expand Down
17 changes: 10 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
minecraft_version=1.20.1
minecraft_version_range=[1.20.1,1.21)
forge_version=47.2.16
forge_version_range=[47.0.18,)
loader_version_range=[47,)
mod_id=aq2
mod_version=2.5.1
minecraft_version=1.20.2
minecraft_version_range=[1.20.2,1.21)
neo_version=20.2.86
neo_version_range=[20.2,)
loader_version_range=[1,)
pack_format_number=18
mod_id=aquaculture
mod_version=2.6.0

# Mod Support
jei_version=15.1.0.19
ct_version=14.0.27

Expand Down
8 changes: 3 additions & 5 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
maven {
name = 'MinecraftForge'
url = 'https://maven.minecraftforge.net/'
}
maven { url = 'https://maven.neoforged.net/releases' }
}
}

plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0'
}
}
30 changes: 16 additions & 14 deletions src/main/java/com/teammetallurgy/aquaculture/Aquaculture.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.teammetallurgy.aquaculture;

import com.teammetallurgy.aquaculture.api.AquacultureAPI;
import com.teammetallurgy.aquaculture.api.fishing.Hooks;
import com.teammetallurgy.aquaculture.block.WormFarmBlock;
import com.teammetallurgy.aquaculture.client.ClientHandler;
import com.teammetallurgy.aquaculture.entity.AquaFishEntity;
import com.teammetallurgy.aquaculture.init.*;
import com.teammetallurgy.aquaculture.item.crafting.ConditionFactory;
import com.teammetallurgy.aquaculture.item.crafting.FishFilletRecipe;
import com.teammetallurgy.aquaculture.loot.AquaBiomeModifiers;
import com.teammetallurgy.aquaculture.loot.FishWeightHandler;
Expand All @@ -19,17 +21,16 @@
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.config.ModConfig;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext;
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Expand All @@ -39,9 +40,8 @@ public class Aquaculture {
public static final boolean IS_DEV = Launcher.INSTANCE.environment().getProperty(Environment.Keys.VERSION.get()).filter(v -> v.equals("MOD_DEV")).isPresent();
public final static String MOD_ID = "aquaculture";
public static final Logger LOG = LogManager.getLogger(MOD_ID);
public static LootItemConditionType BIOME_TAG_CHECK;
public static final DeferredRegister<CreativeModeTab> CREATIVE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, Aquaculture.MOD_ID);
public static final RegistryObject<CreativeModeTab> GROUP = CREATIVE_TABS.register("tab", () -> new CreativeModeTab.Builder(CreativeModeTab.Row.TOP,0)
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> GROUP = CREATIVE_TABS.register("tab", () -> new CreativeModeTab.Builder(CreativeModeTab.Row.TOP,0)
.icon(() -> new ItemStack(AquaItems.IRON_FISHING_ROD.get()))
.title(Component.translatable("tabs." + MOD_ID + ".tab"))
.displayItems((featureFlagSet, tabOutput) -> {
Expand All @@ -64,12 +64,13 @@ public Aquaculture() {
}

private void setupCommon(FMLCommonSetupEvent event) {
event.enqueueWork(Hooks::load);
event.enqueueWork(FishWeightHandler::registerFishData);
event.enqueueWork(AquaEntities::setSpawnPlacement);
event.enqueueWork(WormFarmBlock::addCompostables);
event.enqueueWork(AquaRecipes::registerBrewingRecipes);
event.enqueueWork(() -> {
for (RegistryObject<EntityType<AquaFishEntity>> entityType : FishRegistry.fishEntities) {
for (DeferredHolder<EntityType<?>, EntityType<AquaFishEntity>> entityType : FishRegistry.fishEntities) {
SpawnPlacements.register(entityType.get(), SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AquaFishEntity::canSpawnHere);
}
});
Expand All @@ -92,6 +93,7 @@ public void registerDeferredRegistries(IEventBus modBus) {
AquaGuis.MENU_DEFERRED.register(modBus);
FishFilletRecipe.IRECIPE_SERIALIZERS_DEFERRED.register(modBus);
AquaBiomeModifiers.BIOME_MODIFIER_SERIALIZERS_DEFERRED.register(modBus);
ConditionFactory.CONDITION_CODECS.register(modBus);
}

private void addItemsToTabs(BuildCreativeModeTabContentsEvent event) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@

import com.teammetallurgy.aquaculture.Aquaculture;
import com.teammetallurgy.aquaculture.api.fish.FishData;
import com.teammetallurgy.aquaculture.api.fishing.Hook;
import com.teammetallurgy.aquaculture.init.AquaItems;
import com.teammetallurgy.aquaculture.init.FishRegistry;
import com.teammetallurgy.aquaculture.item.BaitItem;
import com.teammetallurgy.aquaculture.item.HookItem;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.biome.Biome;
import net.minecraftforge.registries.RegistryObject;
import net.neoforged.neoforge.registries.DeferredItem;

import javax.annotation.Nonnull;

Expand All @@ -30,10 +32,16 @@ public static BaitItem createBait(int durability, int lureSpeedModifier) {
return new BaitItem(durability, lureSpeedModifier);
}

public static RegistryObject<Item> registerFishMount(@Nonnull String name) {
public static DeferredItem<Item> registerFishMount(@Nonnull String name) {
return FishRegistry.registerFishMount(name);
}

public static DeferredItem<Item> registerHook(Hook hook) {
DeferredItem<Item> hookItem = AquaItems.registerWithTab(() -> new HookItem(hook), hook.getName() + "_hook");
Hook.HOOKS.put(hook.getName(), hookItem);
return hookItem;
}

public static class Tags {
public static final TagKey<Item> FILLET_KNIFE = tag("forge", "tools/knives");
public static final TagKey<Item> FISHING_LINE = tag(Aquaculture.MOD_ID, "fishing_line");
Expand Down
23 changes: 7 additions & 16 deletions src/main/java/com/teammetallurgy/aquaculture/api/fishing/Hook.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
import net.minecraft.tags.FluidTags;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.registries.RegistryObject;
import net.neoforged.neoforge.registries.DeferredItem;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
Expand All @@ -22,11 +23,9 @@
import java.util.function.Supplier;

public class Hook {
public static final HashMap<String, RegistryObject<Item>> HOOKS = new HashMap<>();
public static final HashMap<String, DeferredItem<Item>> HOOKS = new HashMap<>();
private final String name;
private final String modID;
@Nullable
private final RegistryObject<Item> hookItem;
private final ResourceLocation texture;
private final ChatFormatting color;
private final int minCatchable;
Expand All @@ -51,26 +50,18 @@ private Hook(String name, String modID, ChatFormatting color, int minCatchable,
this.doubleCatchChance = doubleCatchChance;
this.catchSound = catchSound;
this.texture = new ResourceLocation(modID, "textures/entity/rod/hook/" + name + "_hook" + ".png");
if (name != null) {
this.hookItem = AquaItems.registerWithTab(() -> new HookItem(this), name + "_hook");
HOOKS.put(name, hookItem);
} else {
this.hookItem = null;
}
}

public String getName() {
return this.name;
}

public String getModID() {
return this.modID;
}

@Nonnull
public Item getItem() {
RegistryObject<Item> hookItem = this.hookItem;
return hookItem != null ? hookItem.get() : Items.AIR;
for (DeferredItem<Item> hookItem : HOOKS.values()) {
return hookItem != null ? hookItem.get() : ItemStack.EMPTY.getItem();
}
return ItemStack.EMPTY.getItem();
}

public ResourceLocation getTexture() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.teammetallurgy.aquaculture.api.fishing;

import com.teammetallurgy.aquaculture.Aquaculture;
import com.teammetallurgy.aquaculture.init.AquaSounds;
import net.minecraft.ChatFormatting;
import net.minecraft.tags.FluidTags;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.common.Mod;

@Mod.EventBusSubscriber(modid = Aquaculture.MOD_ID) //To get the static registering working
public class Hooks {
public static final Hook EMPTY = new Hook.HookBuilder().build();
//Water
Expand All @@ -27,4 +24,6 @@ public class Hooks {
//public static final Hook QUARTZ = new Hook.HookBuilder("quartz").setFluid(FluidTags.LAVA).setDurabilityChance(0.30).build();
//public static final Hook SOUL_SAND = new Hook.HookBuilder("soul_sand").setColor(TextFormatting.DARK_GRAY).setFluid(FluidTags.LAVA).setCatchableWindow(40, 70).build();
//public static final Hook OBSIDIAN_NOTE = new Hook.HookBuilder("obsidian_note").setColor(TextFormatting.LIGHT_PURPLE).setFluid(FluidTags.LAVA).setCatchSound(SoundEvents.BLOCK_LAVA_EXTINGUISH).build();

public static void load() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.MapColor;
import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.PlantType;
import net.neoforged.neoforge.common.IPlantable;
import net.neoforged.neoforge.common.PlantType;

import javax.annotation.Nonnull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.level.material.MapColor;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
Expand Down

0 comments on commit ad0dcf3

Please sign in to comment.