Skip to content

Commit

Permalink
Update to 1.20.2
Browse files Browse the repository at this point in the history
  • Loading branch information
MattiDragon committed Oct 4, 2023
1 parent 36602d7 commit 04e3131
Show file tree
Hide file tree
Showing 56 changed files with 836 additions and 565 deletions.
27 changes: 21 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
plugins {
id 'fabric-loom' version '1.3-SNAPSHOT'
id 'io.github.juuxel.loom-vineflower' version '1.11.0'
id 'fabric-loom' version '1.4-SNAPSHOT'
id 'maven-publish'
}

version = project.mod_version + "+mc." + project.minecraft_version
group = project.maven_group
archivesBaseName = project.archives_base_name
base.archivesName = project.archives_base_name

loom.splitEnvironmentSourceSets()

repositories {
mavenLocal()
maven {
url "https://kneelawk.com/maven/"
content {
Expand Down Expand Up @@ -52,7 +54,20 @@ repositories {
includeGroup "com.terraformersmc"
}
}
mavenLocal()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
content {
includeGroup "com.twelvemonkeys.common"
includeGroup "com.twelvemonkeys.imageio"
includeGroup "com.twelvemonkeys"
}
}
maven {
url 'https://maven.quiltmc.org/repository/release/'
content {
includeGroup "org.quiltmc.parsers"
}
}
mavenCentral()
}

Expand All @@ -64,7 +79,7 @@ dependencies {
modImplementation "net.fabricmc.fabric-api:fabric-api:$fabric_version"

// Core apis
modImplementation include("com.github.mattidragon:nodeflow:$nodeflow_version")
modImplementation include("io.github.mattidragon:nodeflow:$nodeflow_version")
modImplementation include("com.kneelawk:graphlib:$graphlib_version")
include modApi("teamreborn:energy:$energy_version") {
exclude(group: "net.fabricmc.fabric-api")
Expand Down Expand Up @@ -109,7 +124,7 @@ loom {
name "Gametest"
source sourceSets.testmod
vmArg "-Dfabric-api.gametest"
vmArg "-Dfabric-api.gametest.report-file=${project.buildDir}/junit.xml"
vmArg "-Dfabric-api.gametest.report-file=${project.layout.buildDirectory}/junit.xml"
runDir "build/gametest_server"
}
datagen {
Expand Down
5 changes: 0 additions & 5 deletions changelog/2.0.0+1.20.1.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2.0.1+1.20.1.md

This file was deleted.

7 changes: 0 additions & 7 deletions changelog/2.0.2+1.20.1.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog/2.0.3+1.20.1.md

This file was deleted.

6 changes: 6 additions & 0 deletions changelog/3.0.0+1.20.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Updated to 1.20.2
- Updated nodeflow
- Nodes are now grouped with tags, allowing easier customization
- Now uses split client sources
- Textures are now sprite based
- Lots of API changes for anyone building an addon or integration
18 changes: 9 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
org.gradle.jvmargs=-Xmx1G

minecraft_version=1.20.1
yarn_mappings=1.20.1+build.9
loader_version=0.14.21
minecraft_version=1.20.2
yarn_mappings=1.20.2+build.2
loader_version=0.14.22

mod_version=2.0.3
mod_version=3.0.0
maven_group=io.github.mattidragon
archives_base_name=advanced-networking

fabric_version=0.85.0+1.20.1
nodeflow_version=0.2.2-mc.1.20
graphlib_version=1.1.1+1.20
fabric_version=0.89.3+1.20.2
nodeflow_version=1.0.0-beta.3+mc.1.20.2
graphlib_version=1.4.0+1.20.2
energy_version=3.0.0
yacl_version=3.0.3+1.20
modmenu_version=7.1.0
yacl_version=3.2.1+1.20.2
modmenu_version=8.0.0
configtoolkit_version=1.0.0
noindium_version=1.1.0+1.20
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package io.github.mattidragon.advancednetworking.client;

import io.github.mattidragon.advancednetworking.AdvancedNetworking;
import io.github.mattidragon.advancednetworking.client.screen.ControllerScreen;
import io.github.mattidragon.advancednetworking.client.screen.ResourceFilterConfigScreen;
import io.github.mattidragon.advancednetworking.client.screen.node.CountNodeConfigScreen;
import io.github.mattidragon.advancednetworking.client.screen.node.InterfaceNodeConfigScreen;
import io.github.mattidragon.advancednetworking.client.screen.node.SliderNodeConfigScreen;
import io.github.mattidragon.advancednetworking.graph.ModNodeTypes;
import io.github.mattidragon.advancednetworking.misc.RequestInterfacesPacket;
import io.github.mattidragon.advancednetworking.screen.ControllerScreenHandler;
import io.github.mattidragon.nodeflow.client.compat.controlify.ControlifyProxy;
import io.github.mattidragon.nodeflow.client.ui.NodeConfigScreenRegistry;
import io.github.mattidragon.nodeflow.client.ui.screen.HandledEditorScreen;
import io.github.mattidragon.nodeflow.screen.EditorScreenHandler;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.gui.screen.ingame.HandledScreens;
import net.minecraft.network.PacketByteBuf;

public class AdvancedNetworkingClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
HandledScreens.<EditorScreenHandler, HandledEditorScreen>register(AdvancedNetworking.CONTROLLER_SCREEN, (handler, inventory, title) -> new ControllerScreen((ControllerScreenHandler) handler, inventory, title));
ControlifyProxy.INSTANCE.registerScreenType(ControllerScreen.class);

NodeConfigScreenRegistry.register(InterfaceNodeConfigScreen::new,
ModNodeTypes.READ_REDSTONE,
ModNodeTypes.SET_REDSTONE,
ModNodeTypes.WRITE_REDSTONE,
ModNodeTypes.ITEM_SOURCE,
ModNodeTypes.ITEM_TARGET,
ModNodeTypes.ITEM_CAPACITY,
ModNodeTypes.ENERGY_SOURCE,
ModNodeTypes.ENERGY_TARGET,
ModNodeTypes.ENERGY_CAPACITY,
ModNodeTypes.ENERGY_AMOUNT,
ModNodeTypes.FLUID_SOURCE,
ModNodeTypes.FLUID_TARGET,
ModNodeTypes.FLUID_CAPACITY
);
NodeConfigScreenRegistry.register(CountNodeConfigScreen::new, ModNodeTypes.ITEM_COUNT, ModNodeTypes.FLUID_COUNT);

NodeConfigScreenRegistry.register(SliderNodeConfigScreen::new,
ModNodeTypes.LIMIT_ITEMS,
ModNodeTypes.LIMIT_FLUID,
ModNodeTypes.LIMIT_ENERGY,
ModNodeTypes.SPLIT_ITEMS,
ModNodeTypes.SPLIT_FLUID,
ModNodeTypes.SPLIT_ENERGY,
ModNodeTypes.MERGE_ITEMS,
ModNodeTypes.MERGE_FLUID,
ModNodeTypes.MERGE_ENERGY
);
NodeConfigScreenRegistry.register((node, editorScreen) -> new ResourceFilterConfigScreen<>(node, editorScreen, node.getFilter()),
ModNodeTypes.FILTER_FLUID, ModNodeTypes.FILTER_ITEMS);
NodeConfigScreenRegistry.register(CountNodeConfigScreen::new,
ModNodeTypes.ITEM_COUNT,
ModNodeTypes.FLUID_COUNT);

ClientPlayNetworking.registerGlobalReceiver(RequestInterfacesPacket.RESPONSE_ID, (client, handler, buf, responseSender) -> {
var syncId = buf.readByte();
var interfaces = buf.readMap(PacketByteBuf::readString, PacketByteBuf::readString);

client.execute(() -> {
if (client.player != null && client.player.currentScreenHandler.syncId == syncId && client.currentScreen instanceof InterfaceNodeConfigScreen<?> configScreen) {
configScreen.setInterfaces(interfaces);
}
});
});
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.mattidragon.advancednetworking.config;
package io.github.mattidragon.advancednetworking.client.config;

import dev.isxander.yacl3.api.ConfigCategory;
import dev.isxander.yacl3.api.Option;
Expand All @@ -7,16 +7,18 @@
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.LongFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder;
import dev.isxander.yacl3.api.controller.ValueFormatter;
import io.github.mattidragon.advancednetworking.config.ConfigData;
import io.github.mattidragon.advancednetworking.config.MutableConfigData;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.Text;

import java.util.function.Consumer;
import java.util.function.Function;

public class ConfigClient {
private static final Function<Integer, Text> INT_FORMATTER = (value) -> Text.of(String.format("%d", value));
private static final Function<Long, Text> LONG_FORMATTER = (value) -> Text.of(String.format("%d", value));
private static final ValueFormatter<Integer> INT_FORMATTER = (value) -> Text.of(String.format("%d", value));
private static final ValueFormatter<Long> LONG_FORMATTER = (value) -> Text.of(String.format("%d", value));

public static Screen createScreen(Screen parent, ConfigData config, Consumer<ConfigData> saveConsumer) {
var data = config.toMutable();
Expand All @@ -36,25 +38,25 @@ private static ConfigCategory createCategory(MutableConfigData instance) {
.name(Text.translatable("config.advanced_networking.option.controller_tick_rate"))
.description(OptionDescription.of(Text.translatable("config.advanced_networking.option.controller_tick_rate.tooltip")))
.binding(ConfigData.DEFAULT.controllerTickRate(), instance::controllerTickRate, instance::controllerTickRate)
.controller(option -> IntegerFieldControllerBuilder.create(option).range(0, 125).valueFormatter(INT_FORMATTER))
.controller(option -> IntegerFieldControllerBuilder.create(option).range(0, 125).formatValue(INT_FORMATTER))
.build())
.option(Option.<Long>createBuilder()
.name(Text.translatable("config.advanced_networking.option.controller_item_transfer_rate"))
.description(OptionDescription.of(Text.translatable("config.advanced_networking.option.controller_item_transfer_rate.tooltip")))
.binding(ConfigData.DEFAULT.controllerItemTransferRate(), instance::controllerItemTransferRate, instance::controllerItemTransferRate)
.controller(option -> LongFieldControllerBuilder.create(option).range(0L, 10 * 64L).valueFormatter(LONG_FORMATTER))
.controller(option -> LongFieldControllerBuilder.create(option).range(0L, 10 * 64L).formatValue(LONG_FORMATTER))
.build())
.option(Option.<Long>createBuilder()
.name(Text.translatable("config.advanced_networking.option.controller_fluid_transfer_rate"))
.description(OptionDescription.of(Text.translatable("config.advanced_networking.option.controller_fluid_transfer_rate.tooltip")))
.binding(ConfigData.DEFAULT.controllerFluidTransferRate(), instance::controllerFluidTransferRate, instance::controllerFluidTransferRate)
.controller(option -> LongFieldControllerBuilder.create(option).range(0L, 100 * FluidConstants.BUCKET).valueFormatter(LONG_FORMATTER))
.controller(option -> LongFieldControllerBuilder.create(option).range(0L, 100 * FluidConstants.BUCKET).formatValue(LONG_FORMATTER))
.build())
.option(Option.<Long>createBuilder()
.name(Text.translatable("config.advanced_networking.option.controller_energy_transfer_rate"))
.description(OptionDescription.of(Text.translatable("config.advanced_networking.option.controller_energy_transfer_rate.tooltip")))
.binding(ConfigData.DEFAULT.controllerEnergyTransferRate(), instance::controllerEnergyTransferRate, instance::controllerEnergyTransferRate)
.controller(option -> LongFieldControllerBuilder.create(option).range(0L, 100 * 256L).valueFormatter(LONG_FORMATTER))
.controller(option -> LongFieldControllerBuilder.create(option).range(0L, 100 * 256L).formatValue(LONG_FORMATTER))
.build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("config.advanced_networking.option.disable_regex_filtering"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.mattidragon.advancednetworking.config;
package io.github.mattidragon.advancednetworking.client.config;

import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.mattidragon.advancednetworking.mixin;
package io.github.mattidragon.advancednetworking.client.mixin;

import net.minecraft.client.gui.widget.CheckboxWidget;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package io.github.mattidragon.advancednetworking.client.mixin;

import io.github.mattidragon.advancednetworking.client.screen.CableConfigScreen;
import io.github.mattidragon.advancednetworking.misc.InterfaceType;
import io.github.mattidragon.advancednetworking.mixin.PlayerEntityMixin;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

import java.util.function.Function;

@Mixin(ClientPlayerEntity.class)
public class ClientPlayerEntityMixin extends PlayerEntityMixin {
@Shadow @Final protected MinecraftClient client;

@Override
public void advancednetworking$openCableConfigScreen(BlockPos pos, Direction direction, Function<Direction, InterfaceType> typeSupplier, Function<Direction, String> nameSupplier, boolean allowAdventureModeAccess) {
client.setScreen(new CableConfigScreen(pos, direction, typeSupplier, nameSupplier, allowAdventureModeAccess));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ private int calcRightX() {

@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
super.renderBackground(context);
super.renderBackground(context, mouseX, mouseY, delta);
super.render(context, mouseX, mouseY, delta);

// Title
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io.github.mattidragon.advancednetworking.AdvancedNetworking;
import io.github.mattidragon.advancednetworking.misc.ScreenPosSyncPacket;
import io.github.mattidragon.advancednetworking.screen.ControllerScreenHandler;
import io.github.mattidragon.nodeflow.ui.screen.HandledEditorScreen;
import io.github.mattidragon.nodeflow.client.ui.screen.HandledEditorScreen;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.widget.CyclingButtonWidget;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package io.github.mattidragon.advancednetworking.client.screen;

import io.github.mattidragon.advancednetworking.AdvancedNetworking;
import io.github.mattidragon.advancednetworking.misc.ResourceFilter;
import io.github.mattidragon.nodeflow.client.ui.screen.EditorScreen;
import io.github.mattidragon.nodeflow.client.ui.screen.NodeConfigScreen;
import io.github.mattidragon.nodeflow.graph.node.Node;
import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.widget.CyclingButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;

public class ResourceFilterConfigScreen<N extends Node> extends NodeConfigScreen<N> {
private final ResourceFilter<?, ?> filter;

public ResourceFilterConfigScreen(N owner, EditorScreen parent, ResourceFilter<?, ?> filter) {
super(owner, parent);
this.filter = filter;
}

@Override
protected void init() {
var x = ((width - 200) / 2) - 50;

var regexButton = CyclingButtonWidget.onOffBuilder()
.initially(filter.shouldUseRegex())
.build(x, 45, 100, 20, Text.translatable("node.advanced_networking.filter.use_regex"), (button1, value) -> filter.setUseRegex(value));
if (AdvancedNetworking.CONFIG.get().disableRegexFilter()) {
regexButton.active = false;
regexButton.setTooltip(Tooltip.of(Text.translatable("node.advanced_networking.filter.use_regex.disabled")));
}
addDrawableChild(regexButton);

var whitelistButton = CyclingButtonWidget.onOffBuilder(Text.translatable("node.advanced_networking.filter.mode.whitelist"), Text.translatable("node.advanced_networking.filter.mode.blacklist"))
.initially(filter.isWhitelist())
.omitKeyText()
.build(x, 70, 100, 20, Text.empty(), (button1, value) -> filter.setWhitelist(value));
addDrawableChild(whitelistButton);

var button = CyclingButtonWidget.<ResourceFilter.Mode>builder(mode -> mode == ResourceFilter.Mode.RESOURCE ? Text.translatable("node.advanced_networking.filter.mode.resource") : Text.translatable("node.advanced_networking.filter.mode.tag"))
.values(ResourceFilter.Mode.values())
.initially(filter.getMode())
.build(x, 95, 100, 20, Text.translatable("node.advanced_networking.filter.mode"), (button1, value) -> filter.setMode(value));
addDrawableChild(button);

var idField = new TextFieldWidget(textRenderer, x, 120, 100, 20, Text.empty());
idField.setMaxLength(100);
idField.setPlaceholder(Text.literal("id").formatted(Formatting.GRAY));
idField.setText(filter.getIdFilter());
idField.setChangedListener(filter::setIdFilter);
addDrawableChild(idField);

var nbtField = new TextFieldWidget(textRenderer, x, 145, 100, 20, Text.empty());
nbtField.setMaxLength(200);
nbtField.setPlaceholder(Text.literal("nbt").formatted(Formatting.GRAY));
nbtField.setText(filter.getNbtFilter());
nbtField.setChangedListener(filter::setNbtFilter);
addDrawableChild(nbtField);
}
}
Loading

0 comments on commit 04e3131

Please sign in to comment.