Skip to content

Commit

Permalink
[24w11a] Initial port
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMCLoveMan committed Mar 20, 2024
1 parent 21d84c9 commit 6893750
Show file tree
Hide file tree
Showing 58 changed files with 639 additions and 566 deletions.
26 changes: 17 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
plugins {
id 'idea'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.+'
id 'net.neoforged.gradle.userdev' version '7.0.100'
id 'me.shedaniel.unified-publishing' version '0.1.+'
}

version = mod_version
group = mod_group_id

repositories {
maven { url = "https://nexus.themcbrothers.net/repository/maven-mod-dependencies" }
mavenLocal()
}

base {
archivesName = mod_id
}
Expand Down Expand Up @@ -67,6 +62,19 @@ runs {
// Include resources generated by data generators.
sourceSets.main.resources { srcDir 'src/generated/resources' }

repositories {
maven { url = "https://nexus.themcbrothers.net/repository/maven-mod-dependencies" }
mavenLocal()

maven {
name 'Maven for PR #715' // https://github.com/neoforged/NeoForge/pull/715
url 'https://prmaven.neoforged.net/NeoForge/pr715'
content {
includeModule('net.neoforged', 'neoforge')
}
}
}

dependencies {
// NeoForge
implementation "net.neoforged:neoforge:$neo_version"
Expand All @@ -75,9 +83,9 @@ dependencies {
implementation "net.themcbrothers:themcbroslib:$minecraft_version-$lib_version"

// JEI
compileOnly("mezz.jei:jei-$minecraft_version-common-api:$jei_version")
compileOnly("mezz.jei:jei-$minecraft_version-neoforge-api:$jei_version")
runtimeOnly("mezz.jei:jei-$minecraft_version-neoforge:$jei_version")
compileOnly("mezz.jei:jei-1.20.4-common-api:$jei_version")
compileOnly("mezz.jei:jei-1.20.4-neoforge-api:$jei_version")
// runtimeOnly("mezz.jei:jei-1.20.4-neoforge:$jei_version")
}

tasks.named('processResources', ProcessResources).configure {
Expand Down
18 changes: 9 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ org.gradle.daemon=false
org.gradle.debug=false

# Version
mod_version=9.1.0
mod_version=10.0.0-alpha
artifact_type=release

# Minecraft
minecraft_version=1.20.4
minecraft_version_range=[1.20.4, 1.21)
minecraft_version=24w11a
minecraft_version_range=24w11a

# NeoForge
neo_version=20.4.184
neo_version_range=[20.4.167,)
neo_version=20.5.0-alpha.24w11a.20240318.171240
neo_version_range=20.5.0-alpha.24w11a.20240318.171240
loader_version_range=[2,)

# Mappings
neogradle.subsystems.parchment.minecraftVersion=1.20.3
neogradle.subsystems.parchment.mappingsVersion=2023.12.31
neogradle.subsystems.parchment.minecraftVersion=1.20.4
neogradle.subsystems.parchment.mappingsVersion=2024.02.25

# Mod Properties
mod_name=Useless Mod
Expand All @@ -32,8 +32,8 @@ mod_license=MIT License
catalogue_item_icon=uselessmod:useless_ingot

# Dependencies
lib_version=6.1.0
lib_version_range=[1.20.4-6.1.0,)
lib_version=7.0.0-SNAPSHOT
lib_version_range=24w11a-7.0.0-SNAPSHOT
jei_version=17.3.0.49

# Publishing
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/net/themcbrothers/uselessmod/UselessMod.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package net.themcbrothers.uselessmod;

import net.minecraft.core.component.DataComponents;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Blocks;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package net.themcbrothers.uselessmod.api;

import com.mojang.serialization.Codec;
import net.minecraft.Util;
import net.minecraft.world.effect.MobEffectInstance;
import org.jetbrains.annotations.Nullable;

import java.util.Set;

public class CoffeeType {
public static final Codec<CoffeeType> CODEC = UselessRegistries.COFFEE_REGISTRY.byNameCodec();

private final Set<MobEffectInstance> effects;
private final int color;
private final boolean foil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,9 @@
import net.minecraft.client.resources.model.ModelBaker;
import net.minecraft.client.resources.model.ModelState;
import net.minecraft.core.Direction;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.nbt.Tag;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.BlockState;
Expand All @@ -35,6 +30,7 @@
import net.neoforged.neoforge.client.model.geometry.IGeometryLoader;
import net.neoforged.neoforge.client.model.geometry.IUnbakedGeometry;
import net.themcbrothers.uselessmod.init.ModBlocks;
import net.themcbrothers.uselessmod.init.UselessDataComponents;
import net.themcbrothers.uselessmod.world.level.block.entity.MachineSupplierBlockEntity;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -128,13 +124,7 @@ private static class ItemOverrideHandler extends ItemOverrides {
@Nullable
@Override
public BakedModel resolve(BakedModel model, ItemStack stack, @Nullable ClientLevel level, @Nullable LivingEntity entity, int i) {
CompoundTag tag = BlockItem.getBlockEntityData(stack);
BlockState mimic = null;

if (level != null && tag != null && tag.contains("Mimic", Tag.TAG_COMPOUND)) {
mimic = NbtUtils.readBlockState(level.holderLookup(Registries.BLOCK), tag.getCompound("Mimic"));
}

BlockState mimic = stack.get(UselessDataComponents.MIMIC.get());
return ((MachineSupplierModel) model).getMimicModel(mimic);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,10 @@
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.inventory.InventoryMenu;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.BlockAndTintGetter;
Expand All @@ -42,6 +39,7 @@
import net.neoforged.neoforge.client.model.geometry.IGeometryLoader;
import net.neoforged.neoforge.client.model.geometry.IUnbakedGeometry;
import net.themcbrothers.uselessmod.UselessMod;
import net.themcbrothers.uselessmod.init.UselessDataComponents;
import net.themcbrothers.uselessmod.world.level.block.entity.WallClosetBlockEntity;
import org.apache.commons.compress.utils.Lists;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -181,14 +179,16 @@ private static class ItemOverrideHandler extends ItemOverrides {
@Nullable
@Override
public BakedModel resolve(BakedModel model, ItemStack stack, @Nullable ClientLevel level, @Nullable LivingEntity entity, int i) {
if (model instanceof WallClosetModel wallClosetModel) {
CompoundTag tag = BlockItem.getBlockEntityData(stack);
if (tag != null && tag.contains("Material", Tag.TAG_STRING)) {
final ResourceLocation key = ResourceLocation.tryParse(tag.getString("Material"));
final Block material = BuiltInRegistries.BLOCK.containsKey(key) ? BuiltInRegistries.BLOCK.get(key) : Blocks.OAK_PLANKS;
return wallClosetModel.getCustomModel(Objects.requireNonNull(material), Direction.NORTH);
if (model instanceof WallClosetModel wallClosetModel && stack.has(UselessDataComponents.WALL_CLOSET_MATERIAL.get())) {
Block material = stack.get(UselessDataComponents.WALL_CLOSET_MATERIAL.get());

if (material == null) {
material = Blocks.OAK_PLANKS;
}

return wallClosetModel.getCustomModel(Objects.requireNonNull(material), Direction.NORTH);
}

return model;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.google.common.collect.Maps;
import net.minecraft.core.cauldron.CauldronInteraction;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.ItemInteractionResult;
import net.minecraft.world.item.AxeItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Block;
Expand All @@ -11,6 +11,7 @@
import net.minecraft.world.level.block.LayeredCauldronBlock;
import net.themcbrothers.uselessmod.init.ModBlocks;
import net.themcbrothers.uselessmod.init.ModItems;
import net.themcbrothers.uselessmod.init.UselessDataComponents;

public class VanillaCompatibility {
public static void register() {
Expand Down Expand Up @@ -52,20 +53,20 @@ public static void register() {
LayeredCauldronBlock.lowerFillLevel(state, level, pos);
}

return InteractionResult.sidedSuccess(level.isClientSide);
return ItemInteractionResult.sidedSuccess(level.isClientSide);
});

CauldronInteraction.WATER.map().put(ModItems.PAINT_BRUSH.get(), (state, level, pos, player, hand, stack) -> {
if (stack.hasTag()) {
if (stack.has(UselessDataComponents.COLOR.get())) {
if (!level.isClientSide) {
stack.getOrCreateTag().remove("Color");
stack.remove(UselessDataComponents.COLOR.get());
LayeredCauldronBlock.lowerFillLevel(state, level, pos);
}

return InteractionResult.sidedSuccess(level.isClientSide);
return ItemInteractionResult.sidedSuccess(level.isClientSide);
}

return InteractionResult.PASS;
return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION;
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
import net.minecraft.advancements.critereon.LocationPredicate;
import net.minecraft.advancements.critereon.PlayerTrigger;
import net.minecraft.core.HolderGetter;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.biome.Biome;
import net.neoforged.neoforge.common.data.AdvancementProvider;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
import net.themcbrothers.uselessmod.UselessMod;
Expand All @@ -27,9 +30,11 @@
public class UselessAdvancementProvider implements AdvancementProvider.AdvancementGenerator {
@Override
public void generate(HolderLookup.Provider registries, Consumer<AdvancementHolder> saver, ExistingFileHelper existingFileHelper) {
HolderGetter<Biome> holderGetter = registries.lookupOrThrow(Registries.BIOME);

AdvancementHolder root = Advancement.Builder.advancement().display(info(ModItems.USELESS_INGOT, "root", rl("textures/gui/advancements/backgrounds/uselessmod.png"), AdvancementType.TASK, false, false, false)).addCriterion("what", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.USELESS_INGOT)).save(saver, rl("root"), existingFileHelper);
Advancement.Builder.advancement().display(info(ModBlocks.USELESS_ORE, "mine_ore", null, AdvancementType.TASK, true, true, false)).parent(root).addCriterion("has_ingot", InventoryChangeTrigger.TriggerInstance.hasItems(ModItems.USELESS_INGOT)).save(saver, rl("mine_ore"), existingFileHelper);
AdvancementHolder biome = Advancement.Builder.advancement().display(info(ModBlocks.USELESS_OAK_SAPLING, "visit_useless_forest", null, AdvancementType.TASK, true, true, false)).parent(root).addCriterion("useless_forest", PlayerTrigger.TriggerInstance.located(LocationPredicate.Builder.inBiome(UselessBiomes.USELESS_FOREST))).save(saver, rl("visit_useless_forest"), existingFileHelper);
AdvancementHolder biome = Advancement.Builder.advancement().display(info(ModBlocks.USELESS_OAK_SAPLING, "visit_useless_forest", null, AdvancementType.TASK, true, true, false)).parent(root).addCriterion("useless_forest", PlayerTrigger.TriggerInstance.located(LocationPredicate.Builder.inBiome(holderGetter.getOrThrow(UselessBiomes.USELESS_FOREST)))).save(saver, rl("visit_useless_forest"), existingFileHelper);
Advancement.Builder.advancement().display(info(ModBlocks.USELESS_ROSE, "collect_roses", null, AdvancementType.GOAL, true, true, false)).parent(biome).addCriterion("has_roses", InventoryChangeTrigger.TriggerInstance.hasItems(ModBlocks.RED_ROSE, ModBlocks.BLUE_ROSE, ModBlocks.USELESS_ROSE)).save(saver, rl("collect_roses"), existingFileHelper);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ public static void dataGen(final GatherDataEvent event) {
.add(NeoForgeRegistries.Keys.BIOME_MODIFIERS, UselessBiomeModifiers::bootstrap);

generator.addProvider(event.includeServer(), new DatapackBuiltinEntriesProvider(packOutput, lookupProvider, registrySetBuilder, Set.of(UselessMod.MOD_ID)));
generator.addProvider(event.includeServer(), new UselessRecipeProvider(packOutput));
generator.addProvider(event.includeServer(), new UselessRecipeProvider(packOutput, lookupProvider));
generator.addProvider(event.includeServer(), new UselessLanguageProvider(packOutput));
generator.addProvider(event.includeServer(), new AdvancementProvider(packOutput, lookupProvider, existingFileHelper, List.of(new UselessAdvancementProvider())));
generator.addProvider(event.includeServer(), UselessLootTableProvider.create(packOutput));
generator.addProvider(event.includeServer(), UselessLootTableProvider.create(packOutput, lookupProvider));
final BlockTagsProvider blockTagsProvider = new UselessTagsProvider.Blocks(packOutput, lookupProvider, existingFileHelper);
generator.addProvider(event.includeServer(), blockTagsProvider);
generator.addProvider(event.includeServer(), new UselessTagsProvider.Items(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.themcbrothers.uselessmod.data;

import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.*;
import net.minecraft.world.item.Items;
Expand All @@ -19,11 +20,13 @@
import net.themcbrothers.uselessmod.world.item.crafting.LightSwitchConvertRecipe;
import net.themcbrothers.uselessmod.world.item.crafting.PaintBrushDyeRecipe;

import java.util.concurrent.CompletableFuture;

import static net.themcbrothers.uselessmod.UselessMod.rl;

public class UselessRecipeProvider extends RecipeProvider {
public UselessRecipeProvider(PackOutput packOutput) {
super(packOutput);
public UselessRecipeProvider(PackOutput packOutput, CompletableFuture<HolderLookup.Provider> lookupProvider) {
super(packOutput, lookupProvider);
}

@Override
Expand Down
Loading

0 comments on commit 6893750

Please sign in to comment.