Skip to content

Commit

Permalink
Is everything broken yet (Room Upgrades WIP)
Browse files Browse the repository at this point in the history
  • Loading branch information
robotgryphon committed Aug 20, 2024
1 parent 0272e12 commit f607428
Show file tree
Hide file tree
Showing 29 changed files with 1,083 additions and 378 deletions.
3 changes: 2 additions & 1 deletion core-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ val versionMain: String = System.getenv("VERSION") ?: "9.9.9"
plugins {
id("java-library")
id("maven-publish")
alias(neoforged.plugins.moddev)
alias(neoforged.plugins.neogradle)
}

sourceSets {
Expand All @@ -24,6 +24,7 @@ base {
}

java {
toolchain.vendor.set(JvmVendorSpec.JETBRAINS)
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
withJavadocJar()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public interface RoomTranslations {
Function<Player, Component> PLAYER_NOT_IN_COMPACT_DIM = (player) -> Component.translatableWithFallback(IDs.Errors.PLAYER_NOT_IN_COMPACT_DIM, "", player.getDisplayName());

Function<Player, Component> UNKNOWN_ROOM_BY_PLAYER_CHUNK = (player) -> Component
.translatableWithFallback(IDs.Errors.UNKNOWN_ROOM_BY_PLAYER_CHUNK, "Room not found at chunk: %s", player.chunkPosition())
.translatableWithFallback(IDs.Errors.UNKNOWN_ROOM_BY_PLAYER_CHUNK, "Room not found at chunk: %s", player.chunkPosition().toString())
.withStyle(ChatFormatting.DARK_RED);

Function<String, Component> UNKNOWN_ROOM_BY_CODE = (roomCode) -> Component
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,13 @@
package dev.compactmods.machines.api.room.upgrade;

import com.mojang.serialization.Codec;
import dev.compactmods.machines.api.CompactMachines;
import dev.compactmods.machines.api.room.upgrade.events.RoomUpgradeEvent;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.item.component.TooltipProvider;

import java.util.stream.Stream;

public interface RoomUpgrade extends TooltipProvider {

Codec<RoomUpgrade> DISPATCH_CODEC = Codec.lazyInitialized(() -> {
@SuppressWarnings("unchecked") final var reg = (Registry<RoomUpgradeDefinition<?>>) BuiltInRegistries.REGISTRY.get(CompactMachines.modRL("room_upgrades"));

if (reg != null) {
var upgradeRegistry = reg.byNameCodec();
return upgradeRegistry.dispatchStable(RoomUpgrade::getType, RoomUpgradeDefinition::codec);
}

throw new RuntimeException("Room upgrade registry not registered yet; calling too early?");
});

RoomUpgradeDefinition<?> getType();

StreamCodec<RegistryFriendlyByteBuf, RoomUpgrade> STREAM_CODEC = ByteBufCodecs.fromCodecWithRegistries(DISPATCH_CODEC);
RoomUpgradeDefinition<?> getType();

default Stream<RoomUpgradeEvent> gatherEvents() {
return Stream.empty();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package dev.compactmods.machines.api.room.upgrade;

import com.mojang.serialization.Codec;
import dev.compactmods.machines.api.CompactMachines;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;

public interface RoomUpgradeCodecs {
Codec<RoomUpgrade> DISPATCH_CODEC = Codec.lazyInitialized(() -> {
@SuppressWarnings("unchecked") final var reg = (Registry<RoomUpgradeDefinition<?>>) BuiltInRegistries.REGISTRY.get(CompactMachines.modRL("room_upgrades"));

if (reg != null) {
var upgradeRegistry = reg.byNameCodec();
return upgradeRegistry.dispatchStable(RoomUpgrade::getType, RoomUpgradeDefinition::codec);
}

throw new RuntimeException("Room upgrade registry not registered yet; calling too early?");
});
StreamCodec<RegistryFriendlyByteBuf, RoomUpgrade> STREAM_CODEC = ByteBufCodecs.fromCodecWithRegistries(DISPATCH_CODEC);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@ public record RoomUpgradeDefinition<T extends RoomUpgrade>(MapCodec<T> codec) {

public static final ResourceKey<Registry<RoomUpgradeDefinition<?>>> REG_KEY = ResourceKey
.createRegistryKey(CompactMachines.modRL("room_upgrades"));

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.mojang.serialization.Codec;
import dev.compactmods.machines.api.room.upgrade.RoomUpgrade;
import dev.compactmods.machines.api.room.upgrade.RoomUpgradeCodecs;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.chat.Component;
import net.minecraft.network.codec.ByteBufCodecs;
Expand All @@ -21,11 +22,11 @@
*/
public record RoomUpgradeList(List<RoomUpgrade> upgrades) implements TooltipProvider {

public static final Codec<RoomUpgradeList> CODEC = RoomUpgrade.DISPATCH_CODEC.listOf()
public static final Codec<RoomUpgradeList> CODEC = RoomUpgradeCodecs.DISPATCH_CODEC.listOf()
.xmap(RoomUpgradeList::new, RoomUpgradeList::upgrades);

public static final StreamCodec<RegistryFriendlyByteBuf, RoomUpgradeList> STREAM_CODEC = StreamCodec.composite(
RoomUpgrade.STREAM_CODEC.apply(ByteBufCodecs.list()), RoomUpgradeList::upgrades,
RoomUpgradeCodecs.STREAM_CODEC.apply(ByteBufCodecs.list()), RoomUpgradeList::upgrades,
RoomUpgradeList::new
);

Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ org.gradle.parallel=true
# org.gradle.caching=true
# org.gradle.configuration-cache=true

neoForge.parchment.minecraftVersion=1.20.6
neoForge.parchment.mappingsVersion=2024.05.01
neogradle.subsystems.parchment.minecraftVersion=1.21
neogradle.subsystems.parchment.mappingsVersion=2024.07.28

neogradle.subsystems.conventions.runs.create-default-run-per-type=false

Expand Down
21 changes: 8 additions & 13 deletions neoforge-datagen/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
id("eclipse")
id("idea")
id("maven-publish")
alias(neoforged.plugins.moddev)
alias(neoforged.plugins.neogradle)
}

val modId: String = "compactmachines"
Expand All @@ -17,6 +17,7 @@ project.evaluationDependsOn(coreApi.path)
project.evaluationDependsOn(mainProject.path)

java {
toolchain.vendor.set(JvmVendorSpec.JETBRAINS)
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
}

Expand Down Expand Up @@ -44,10 +45,10 @@ runs {
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty("forge.enabledGameTestNamespaces", modId)

programArguments.addAll("--mod", modId)
programArguments.addAll("--all")
programArguments.addAll("--output", mainProject.file("src/generated/resources").absolutePath)
programArguments.addAll("--existing", mainProject.file("src/main/resources").absolutePath)
arguments.addAll("--mod", modId)
arguments.addAll("--all")
arguments.addAll("--output", mainProject.file("src/generated/resources").absolutePath)
arguments.addAll("--existing", mainProject.file("src/main/resources").absolutePath)
}
}

Expand All @@ -61,19 +62,13 @@ repositories {
password = project.findProperty("gpr.token") as String? ?: System.getenv("GITHUB_TOKEN")
}
}

// https://github.com/neoforged/NeoForge/pull/1303
maven("https://prmaven.neoforged.net/NeoForge/pr1303") {
content {
includeModule("net.neoforged", "neoforge")
}
}
}

dependencies {
implementation("net.neoforged:neoforge:21.0.159-pr-1303-feat-recipe-provider-lookup")
compileOnly(coreApi)
compileOnly(mainProject)

compileOnly(neoforged.neoforge)
}

tasks.compileJava {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected void addTranslations() {
// Room Translations
add(RoomTranslations.IDs.ROOM_SPAWNPOINT_SET, "New spawn point set.");
add(RoomTranslations.IDs.MACHINE_ROOM_INFO, "Machine at %1$s is bound to a %2$s size room at %3$s");
add(RoomTranslations.IDs.PLAYER_ROOM_INFO, "Player '%1$s' is inside a %3$s room at %2$s.");
add(RoomTranslations.IDs.PLAYER_ROOM_INFO, "Player '%1$s' is inside room %2$s.");

// Room Errors
add(RoomTranslations.IDs.Errors.CANNOT_ENTER_ROOM, "You fumble with the shrinking device, to no avail. It refuses to work.");
Expand Down
Loading

0 comments on commit f607428

Please sign in to comment.