Skip to content

Commit 7602edb

Browse files
author
NeofastFTL
committed
made guideme guide
1 parent d0a4b74 commit 7602edb

File tree

13 files changed

+78
-239
lines changed

13 files changed

+78
-239
lines changed

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ neoForge {
7474
runs {
7575
client {
7676
client()
77+
systemProperty 'guideme.infinitypattern.book.sources',
78+
file("src/main/resources/assets/infinitypattern/ifpat_guidebook/").absolutePath
7779

7880
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
7981
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
@@ -147,6 +149,7 @@ dependencies {
147149
runtimeOnly("mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}")
148150
compileOnly "org.appliedenergistics:appliedenergistics2:19.2.2-beta:api"
149151
implementation "org.appliedenergistics:appliedenergistics2:19.2.2-beta"
152+
implementation "org.appliedenergistics:guideme:${guide_me_version}"
150153
}
151154

152155
// This block of code expands all declared replace properties in the specified resource targets.

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ org.gradle.configuration-cache=true
1010
parchment_minecraft_version=1.21.1
1111
parchment_mappings_version=2024.11.13
1212
jei_version=19.9.1.125
13+
guide_me_version=21.1.14
1314
# Environment Properties
1415
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
1516
# The Minecraft version must agree with the Neo version to get a valid artifact

src/main/java/com/neofastftl/infinitypattern/Config.java

Lines changed: 0 additions & 63 deletions
This file was deleted.
Lines changed: 8 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,30 @@
11
package com.neofastftl.infinitypattern;
22

3+
import com.neofastftl.infinitypattern.registries.ModItems;
4+
import com.neofastftl.infinitypattern.registries.ModCreativeTabs;
5+
import com.neofastftl.infinitypattern.guidebook.IFPATGuide;
36
import org.slf4j.Logger;
47

58
import com.mojang.logging.LogUtils;
69

7-
import net.minecraft.client.Minecraft;
8-
import net.minecraft.core.registries.BuiltInRegistries;
910
import net.minecraft.core.registries.Registries;
1011
import net.minecraft.network.chat.Component;
1112
import net.minecraft.world.item.CreativeModeTab;
1213
import net.minecraft.world.item.CreativeModeTabs;
1314
import net.minecraft.world.item.Item;
14-
import net.minecraft.world.level.block.Blocks;
15-
import net.neoforged.api.distmarker.Dist;
1615
import net.neoforged.bus.api.IEventBus;
17-
import net.neoforged.bus.api.SubscribeEvent;
18-
import net.neoforged.fml.ModContainer;
19-
import net.neoforged.fml.common.EventBusSubscriber;
2016
import net.neoforged.fml.common.Mod;
21-
import net.neoforged.fml.config.ModConfig;
22-
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
23-
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
24-
import net.neoforged.neoforge.common.NeoForge;
25-
import net.neoforged.neoforge.event.server.ServerStartingEvent;
2617
import net.neoforged.neoforge.registries.DeferredHolder;
2718
import net.neoforged.neoforge.registries.DeferredItem;
2819
import net.neoforged.neoforge.registries.DeferredRegister;
2920

30-
import static net.minecraft.world.item.Items.registerItem;
31-
32-
// The value here should match an entry in the META-INF/neoforge.mods.toml file
3321
@Mod(InfinityPattern.MODID)
34-
public class InfinityPattern
35-
{
36-
// Define mod id in a common place for everything to reference
22+
public class InfinityPattern {
3723
public static final String MODID = "infinitypattern";
38-
// Directly reference a slf4j logger
39-
public static final Logger LOGGER = LogUtils.getLogger();
40-
// Create a Deferred Register to hold Blocks which will all be registered under the "examplemod" namespace
41-
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(InfinityPattern.MODID);
42-
// Create a Deferred Register to hold CreativeModeTabs which will all be registered under the "examplemod" namespace
43-
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID);
44-
45-
// Creates a new food item with the id "examplemod:example_id", nutrition 1 and saturation 2
46-
public static final DeferredItem<Item> ITEM_INFINITE_EMPTY_PATTERN = ITEMS.register("infinite_empty_pattern",
47-
() -> new Item(new Item.Properties().stacksTo(1)));
48-
49-
// Creates a creative tab with the id "examplemod:example_tab" for the example item, that is placed after the combat tab
50-
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> INFINITY_PATTERN = CREATIVE_MODE_TABS.register("infinitypattern", () -> CreativeModeTab.builder()
51-
.title(Component.translatable("itemGroup.infinitypattern")) //The language key for the title of your CreativeModeTab
52-
.withTabsBefore(CreativeModeTabs.COMBAT)
53-
.icon(() -> ITEM_INFINITE_EMPTY_PATTERN.get().getDefaultInstance())
54-
.displayItems((parameters, output) -> {
55-
output.accept(ITEM_INFINITE_EMPTY_PATTERN.get()); // Add the example item to the tab. For your own tabs, this method is preferred over the event
56-
}).build());
57-
58-
// The constructor for the mod class is the first code that is run when your mod is loaded.
59-
// FML will recognize some parameter types like IEventBus or ModContainer and pass them in automatically.
60-
public InfinityPattern(IEventBus modEventBus, ModContainer modContainer)
61-
{
62-
// Register the commonSetup method for modloading
63-
modEventBus.addListener(this::commonSetup);
64-
65-
// Register the Deferred Register to the mod event bus so items get registered
66-
ITEMS.register(modEventBus);
67-
// Register the Deferred Register to the mod event bus so tabs get registered
68-
CREATIVE_MODE_TABS.register(modEventBus);
69-
70-
// Register ourselves for server and other game events we are interested in.
71-
// Note that this is necessary if and only if we want *this* class (ExampleMod) to respond directly to events.
72-
// Do not add this line if there are no @SubscribeEvent-annotated functions in this class, like onServerStarting() below.
73-
NeoForge.EVENT_BUS.register(this);
74-
75-
// Register our mod's ModConfigSpec so that FML can create and load the config file for us
76-
modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
77-
}
78-
79-
private void commonSetup(final FMLCommonSetupEvent event)
80-
{
81-
// Some common setup code
82-
LOGGER.info("HELLO FROM COMMON SETUP");
83-
84-
if (Config.logDirtBlock)
85-
LOGGER.info("DIRT BLOCK >> {}", BuiltInRegistries.BLOCK.getKey(Blocks.DIRT));
86-
87-
LOGGER.info(Config.magicNumberIntroduction + Config.magicNumber);
88-
89-
Config.items.forEach((item) -> LOGGER.info("ITEM >> {}", item.toString()));
90-
}
91-
92-
// You can use SubscribeEvent and let the Event Bus discover methods to call
93-
@SubscribeEvent
94-
public void onServerStarting(ServerStartingEvent event)
95-
{
96-
// Do something when the server starts
97-
LOGGER.info("HELLO from server starting");
98-
}
9924

100-
// You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
101-
@EventBusSubscriber(modid = MODID, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
102-
public static class ClientModEvents
103-
{
104-
@SubscribeEvent
105-
public static void onClientSetup(FMLClientSetupEvent event)
106-
{
107-
// Some client setup code
108-
LOGGER.info("HELLO FROM CLIENT SETUP");
109-
LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());
110-
}
25+
public InfinityPattern(IEventBus modEventBus) {
26+
ModItems.ITEMS.register(modEventBus);
27+
ModCreativeTabs.CREATIVE_MODE_TABS.register(modEventBus);
28+
IFPATGuide.init();
11129
}
11230
}

src/main/java/com/neofastftl/infinitypattern/client/GuideHandler.java

Lines changed: 0 additions & 70 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.neofastftl.infinitypattern.guidebook;
2+
3+
import com.neofastftl.infinitypattern.InfinityPattern;
4+
import guideme.Guide;
5+
import net.minecraft.resources.ResourceLocation;
6+
7+
public class IFPATGuide {
8+
public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(InfinityPattern.MODID, "book");
9+
private static Guide guide;
10+
11+
public static void init() {
12+
guide = Guide.builder(ID)
13+
.folder("ifpat_guidebook")
14+
.build();
15+
}
16+
17+
private IFPATGuide() {}
18+
}

src/main/java/com/neofastftl/infinitypattern/mixins/IFPATMixinPlugin.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public class IFPATMixinPlugin implements IMixinConfigPlugin {
2626

2727
@Override
2828
public void onLoad(String s) {
29-
String[] str;
3029
}
3130

3231
@Override

src/main/java/com/neofastftl/infinitypattern/mixins/MixinPatternEncodingTermMenu.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.neofastftl.infinitypattern.mixins;
22

33
import appeng.parts.encoding.PatternEncodingLogic;
4-
import com.neofastftl.infinitypattern.InfinityPattern;
4+
import com.neofastftl.infinitypattern.registries.ModItems;
55
import org.spongepowered.asm.mixin.Final;
66
import org.spongepowered.asm.mixin.Mixin;
77
import org.spongepowered.asm.mixin.Shadow;
@@ -35,16 +35,12 @@ public abstract class MixinPatternEncodingTermMenu extends MEStorageMenu {
3535
@Inject(method = "encode", at = @At("HEAD"))
3636
private void onEncodePatternHead(CallbackInfo ci) {
3737
var blank = this.blankPatternSlot.getItem();
38-
if (blank.is(InfinityPattern.ITEM_INFINITE_EMPTY_PATTERN.get())) {
39-
wasInfinitePattern = true;
40-
} else {
41-
wasInfinitePattern = false;
42-
}
38+
wasInfinitePattern = blank.is(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get());
4339
}
4440

4541
@Inject(method = "isPattern", at = @At("HEAD"), cancellable = true)
4642
private void onIsPattern(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
47-
if (stack.is(InfinityPattern.ITEM_INFINITE_EMPTY_PATTERN.get())) {
43+
if (stack.is(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get())) {
4844
cir.setReturnValue(true);
4945
}
5046
}
@@ -54,8 +50,8 @@ private void onEncodePatternReturn(CallbackInfo ci) {
5450
if (wasInfinitePattern) {
5551
var blank = this.blankPatternSlot.getItem();
5652
if (blank.isEmpty()) {
57-
this.blankPatternSlot.set(InfinityPattern.ITEM_INFINITE_EMPTY_PATTERN.get().getDefaultInstance());
58-
} else if (blank.is(InfinityPattern.ITEM_INFINITE_EMPTY_PATTERN.get())) {
53+
this.blankPatternSlot.set(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get().getDefaultInstance());
54+
} else if (blank.is(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get())) {
5955
blank.setCount(1);
6056
}
6157
wasInfinitePattern = false;

src/main/java/com/neofastftl/infinitypattern/mixins/MixinRestrictedInputSlot.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import appeng.menu.slot.AppEngSlot;
44
import appeng.menu.slot.RestrictedInputSlot;
5-
import com.neofastftl.infinitypattern.InfinityPattern;
5+
import com.neofastftl.infinitypattern.registries.ModItems;
66
import net.minecraft.world.item.ItemStack;
77
import org.spongepowered.asm.mixin.Mixin;
88
import org.spongepowered.asm.mixin.injection.At;
@@ -14,10 +14,8 @@ public abstract class MixinRestrictedInputSlot {
1414

1515
@Inject(method = "mayPlace", at = @At("HEAD"), cancellable = true)
1616
private void mayPlace(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
17-
if (stack != null && !stack.isEmpty()) {
18-
if (stack.is(InfinityPattern.ITEM_INFINITE_EMPTY_PATTERN.get())) {
19-
cir.setReturnValue(true);
20-
}
17+
if (stack.is(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get())) {
18+
cir.setReturnValue(true);
2119
}
2220
}
2321
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.neofastftl.infinitypattern.registries;
2+
3+
import com.neofastftl.infinitypattern.InfinityPattern;
4+
import net.minecraft.core.registries.Registries;
5+
import net.minecraft.network.chat.Component;
6+
import net.minecraft.world.item.CreativeModeTab;
7+
import net.minecraft.world.item.CreativeModeTabs;
8+
import net.neoforged.neoforge.registries.DeferredHolder;
9+
import net.neoforged.neoforge.registries.DeferredRegister;
10+
11+
public class ModCreativeTabs {
12+
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS =
13+
DeferredRegister.create(Registries.CREATIVE_MODE_TAB, InfinityPattern.MODID);
14+
15+
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> INFINITY_PATTERN =
16+
CREATIVE_MODE_TABS.register("infinitypattern", () -> CreativeModeTab.builder()
17+
.title(Component.translatable("itemGroup.infinitypattern"))
18+
.withTabsBefore(CreativeModeTabs.COMBAT)
19+
.icon(() -> ModItems.ITEM_INFINITE_EMPTY_PATTERN.get().getDefaultInstance())
20+
.displayItems((parameters, output) -> {
21+
output.accept(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get());
22+
}).build());
23+
}

0 commit comments

Comments
 (0)