Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/1.19.x' into 1.19.x
Browse files Browse the repository at this point in the history
# Conflicts:
#	build.gradle
#	gradle.properties
#	src/api/java/dev/compactmods/machines/api/core/CMCommands.java
#	src/api/java/dev/compactmods/machines/api/core/Constants.java
#	src/api/java/dev/compactmods/machines/api/room/IRoomInformation.java
#	src/datagen/java/dev/compactmods/machines/datagen/BlockLootGenerator.java
#	src/main/java/dev/compactmods/machines/CompactMachines.java
#	src/main/java/dev/compactmods/machines/client/ClientEventHandler.java
#	src/main/java/dev/compactmods/machines/client/gui/widget/PSDIconButton.java
#	src/main/java/dev/compactmods/machines/command/Commands.java
#	src/main/java/dev/compactmods/machines/command/subcommand/CMEjectSubcommand.java
#	src/main/java/dev/compactmods/machines/command/subcommand/CMRebindSubcommand.java
#	src/main/java/dev/compactmods/machines/compat/carryon/CarryOnCompat.java
#	src/main/java/dev/compactmods/machines/core/Registration.java
#	src/main/java/dev/compactmods/machines/core/ServerEventHandler.java
#	src/main/java/dev/compactmods/machines/core/UIRegistration.java
#	src/main/java/dev/compactmods/machines/datagen/RecipeGenerator.java
#	src/main/java/dev/compactmods/machines/datagen/lang/BaseLangGenerator.java
#	src/main/java/dev/compactmods/machines/datagen/lang/EnglishLangGenerator.java
#	src/main/java/dev/compactmods/machines/datagen/tags/BlockTagGenerator.java
#	src/main/java/dev/compactmods/machines/graph/CMGraphRegistration.java
#	src/main/java/dev/compactmods/machines/machine/CompactMachineBlock.java
#	src/main/java/dev/compactmods/machines/machine/CompactMachineBlockEntity.java
#	src/main/java/dev/compactmods/machines/room/RoomCapabilities.java
#	src/main/java/dev/compactmods/machines/room/RoomEventHandler.java
#	src/main/java/dev/compactmods/machines/room/RoomInformation.java
#	src/main/java/dev/compactmods/machines/room/capability/PlayerRoomHistoryCapProvider.java
#	src/main/java/dev/compactmods/machines/room/capability/RoomCapEventHandler.java
#	src/main/java/dev/compactmods/machines/room/data/CompactMachinesLootFunctions.java
#	src/main/java/dev/compactmods/machines/room/graph/CompactMachineRoomNode.java
#	src/main/java/dev/compactmods/machines/room/network/PlayerRequestedTeleportPacket.java
#	src/main/java/dev/compactmods/machines/room/network/PlayerStartedRoomTrackingPacket.java
#	src/main/java/dev/compactmods/machines/shrinking/PersonalShrinkingDevice.java
#	src/main/java/dev/compactmods/machines/tunnel/TunnelItem.java
#	src/main/java/dev/compactmods/machines/tunnel/TunnelWallBlock.java
#	src/main/java/dev/compactmods/machines/tunnel/TunnelWallEntity.java
#	src/main/java/dev/compactmods/machines/tunnel/Tunnels.java
#	src/main/java/dev/compactmods/machines/tunnel/graph/TunnelConnectionGraph.java
#	src/main/java/dev/compactmods/machines/upgrade/MachineRoomUpgrades.java
#	src/main/java/dev/compactmods/machines/upgrade/command/RoomUpgradeArgument.java
#	src/main/java/dev/compactmods/machines/util/DimensionUtil.java
#	src/main/java/dev/compactmods/machines/util/PlayerUtil.java
#	src/main/resources/META-INF/mods.toml
#	src/test/java/dev/compactmods/machines/test/ServerEvents.java
#	src/test/java/dev/compactmods/machines/test/worldgen/DimensionTests.java
  • Loading branch information
AlphaMode committed Jul 30, 2022
2 parents e02d50f + 0f9b130 commit b092f5d
Show file tree
Hide file tree
Showing 103 changed files with 819 additions and 616 deletions.
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

minecraft_version=1.19
minecraft_version=1.19.1
loader_version=0.14.8
fabric_version=0.58.0+1.19
fabric_version=0.58.5+1.19.1

mod_id=compactmachines

# Dependencies and Libs
jei_mc_version=1.19
jei_version=11.0.0.222
jei_mc_version=1.19.1
jei_version=11.2.0.241
rei_version=9.1.517
top_version=1.19-6.0.0
port_lib_version=2.0.422
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.minecraft.resources.ResourceLocation;

public class Advancements {
public abstract class Advancements {
public static final ResourceLocation HOW_DID_YOU_GET_HERE = new ResourceLocation(Constants.MOD_ID, "how_did_you_get_here");
public static final ResourceLocation ROOT = new ResourceLocation(Constants.MOD_ID, "root");
public static final ResourceLocation FOUNDATIONS = new ResourceLocation(Constants.MOD_ID, "foundations");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.minecraft.resources.ResourceLocation;

public class CMCommands {
public abstract class CMCommands {
public static final ResourceLocation LEVEL_REGISTERED = new ResourceLocation(Constants.MOD_ID, "level_registered");
public static final ResourceLocation LEVEL_NOT_FOUND = new ResourceLocation(Constants.MOD_ID, "level_not_found");

Expand Down
2 changes: 1 addition & 1 deletion src/api/java/dev/compactmods/machines/api/core/CMTags.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;

public class CMTags {
public abstract class CMTags {

public static final TagKey<Item> ROOM_UPGRADE_ITEM = TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation(Constants.MOD_ID, "room_upgrade"));
}
4 changes: 0 additions & 4 deletions src/api/java/dev/compactmods/machines/api/core/Constants.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package dev.compactmods.machines.api.core;

import net.minecraft.resources.ResourceLocation;

public abstract class Constants {
public static final String MOD_ID = "compactmachines";

public static final ResourceLocation TUNNEL_ID = new ResourceLocation(MOD_ID, "tunnel");

public static final ResourceLocation STORAGE_TYPE_REGISTRY = new ResourceLocation(MOD_ID, "storage_types");

public static final ResourceLocation ITEM_TUNNEL_KEY = new ResourceLocation(MOD_ID, "item_tunnel");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.minecraft.resources.ResourceLocation;

public class JeiInfo {
public abstract class JeiInfo {
public static final ResourceLocation MACHINE = new ResourceLocation(Constants.MOD_ID, "machines");

public static final ResourceLocation SHRINKING_DEVICE = new ResourceLocation(Constants.MOD_ID, "shrinking_device");
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.compactmods.machines.room;
package dev.compactmods.machines.api.room;

import com.mojang.serialization.Codec;
import net.minecraft.util.StringRepresentable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package dev.compactmods.machines.api.tunnels;

import dev.compactmods.machines.api.core.Constants;
import net.minecraft.resources.ResourceLocation;

public interface TunnelDefinition {
/**
* The color of a non-indicator (the same color as the wall)
Expand All @@ -17,6 +20,7 @@ public interface TunnelDefinition {
* a machine room.
*/
int EXPORT_COLOR = 0xffe6a709;
ResourceLocation TUNNEL_ID = new ResourceLocation(Constants.MOD_ID, "tunnel");

/**
* The central ring color of the tunnel. Shown in the tunnel item and on blocks.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.google.common.collect.Lists;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.compactmods.machines.api.core.Constants;
import dev.compactmods.machines.api.tunnels.TunnelDefinition;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.minecraft.advancements.Advancement;
Expand Down Expand Up @@ -121,7 +120,7 @@ public void serializeRecipeData(JsonObject output) {
output.add("ingredients", jsonarray);

JsonObject result = new JsonObject();
result.addProperty("item", Constants.TUNNEL_ID.toString());
result.addProperty("item", TunnelDefinition.TUNNEL_ID.toString());
if (this.count > 1) {
result.addProperty("count", this.count);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@
public abstract class RoomUpgradeHelper {

public static final String NBT_UPGRADE_NODE = "upgrade_info";
public static final String NBT_UPDATE_ID = "key";
public static final String NBT_UPGRADE_ID = "key";

public static Optional<ResourceLocation> getTypeFrom(@NotNull ItemStack stack) {
if(!stack.hasTag()) return Optional.empty();
final var tag = stack.getTag();
if(!tag.contains(NBT_UPGRADE_NODE)) return Optional.empty();

final var upg = tag.getCompound(NBT_UPGRADE_NODE);
if(!upg.contains(NBT_UPDATE_ID)) return Optional.empty();
if(!upg.contains(NBT_UPGRADE_ID)) return Optional.empty();

final var upg2 = new ResourceLocation(upg.getString(NBT_UPDATE_ID));
final var upg2 = new ResourceLocation(upg.getString(NBT_UPGRADE_ID));
return Optional.of(upg2);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package dev.compactmods.machines.datagen;

import com.google.common.collect.ImmutableList;
import com.mojang.datafixers.util.Pair;
import dev.compactmods.machines.machine.Machines;
import dev.compactmods.machines.room.data.CopyRoomBindingFunction;
import dev.compactmods.machines.wall.Walls;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.loot.BlockLoot;
import net.minecraft.data.loot.LootTableProvider;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.storage.loot.LootPool;
import net.minecraft.world.level.storage.loot.LootTable;
import net.minecraft.world.level.storage.loot.LootTables;
import net.minecraft.world.level.storage.loot.ValidationContext;
import net.minecraft.world.level.storage.loot.entries.LootItem;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition;
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
import net.minecraftforge.registries.RegistryObject;

import javax.annotation.Nonnull;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Supplier;

public class BlockLootGenerator extends LootTableProvider {

public BlockLootGenerator(DataGenerator dataGeneratorIn) {
super(dataGeneratorIn);
}

@Override
protected List<Pair<Supplier<Consumer<BiConsumer<ResourceLocation, LootTable.Builder>>>, LootContextParamSet>> getTables() {
return ImmutableList.of(Pair.of(Blocks::new, LootContextParamSets.BLOCK));
}

@Override
protected void validate(Map<ResourceLocation, LootTable> map, @Nonnull ValidationContext val) {
map.forEach((name, table) -> LootTables.validate(val, name, table));
}

private static class Blocks extends BlockLoot {
@Override
protected void addTables() {
this.add(Walls.BLOCK_BREAKABLE_WALL.get(), LootTable.lootTable().withPool(LootPool
.lootPool()
.name(Walls.BLOCK_BREAKABLE_WALL.getId().toString())
.setRolls(ConstantValue.exactly(1))
.when(ExplosionCondition.survivesExplosion())
.add(LootItem.lootTableItem(Walls.ITEM_BREAKABLE_WALL.get()))));

// Compact Machines
registerCompactMachineBlockDrops(Machines.MACHINE_BLOCK_TINY, Machines.MACHINE_BLOCK_ITEM_TINY);
registerCompactMachineBlockDrops(Machines.MACHINE_BLOCK_SMALL, Machines.MACHINE_BLOCK_ITEM_SMALL);
registerCompactMachineBlockDrops(Machines.MACHINE_BLOCK_NORMAL, Machines.MACHINE_BLOCK_ITEM_NORMAL);
registerCompactMachineBlockDrops(Machines.MACHINE_BLOCK_LARGE, Machines.MACHINE_BLOCK_ITEM_LARGE);
registerCompactMachineBlockDrops(Machines.MACHINE_BLOCK_GIANT, Machines.MACHINE_BLOCK_ITEM_GIANT);
registerCompactMachineBlockDrops(Machines.MACHINE_BLOCK_MAXIMUM, Machines.MACHINE_BLOCK_ITEM_MAXIMUM);
}

private void registerCompactMachineBlockDrops(RegistryObject<Block> block, RegistryObject<Item> item) {
LootPool.Builder builder = LootPool.lootPool()
.name(block.getId().toString())
.setRolls(ConstantValue.exactly(1))
.when(ExplosionCondition.survivesExplosion())
.apply(CopyRoomBindingFunction.binding())
.add(LootItem.lootTableItem(item.get()));

this.add(block.get(), LootTable.lootTable().withPool(builder));
}

@Override
protected Iterable<Block> getKnownBlocks() {
return ImmutableList.of(
// Breakable Walls
Walls.BLOCK_BREAKABLE_WALL.get(),

// Compact Machines
Machines.MACHINE_BLOCK_TINY.get(),
Machines.MACHINE_BLOCK_SMALL.get(),
Machines.MACHINE_BLOCK_NORMAL.get(),
Machines.MACHINE_BLOCK_LARGE.get(),
Machines.MACHINE_BLOCK_GIANT.get(),
Machines.MACHINE_BLOCK_MAXIMUM.get()
);
}
}
}
105 changes: 75 additions & 30 deletions src/main/java/dev/compactmods/machines/CompactMachines.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package dev.compactmods.machines;

import dev.compactmods.machines.api.tunnels.capability.CapabilityTunnel;
import dev.compactmods.machines.command.CompactMachinesCommands;
import dev.compactmods.machines.api.core.Constants;
import dev.compactmods.machines.command.Commands;
import dev.compactmods.machines.config.CommonConfig;
import dev.compactmods.machines.config.EnableVanillaRecipesConfigCondition;
import dev.compactmods.machines.config.ServerConfig;
import dev.compactmods.machines.core.*;
import dev.compactmods.machines.graph.CMGraphRegistration;
import dev.compactmods.machines.machine.CompactMachineBlockEntity;
import dev.compactmods.machines.room.RoomEventHandler;
import dev.compactmods.machines.room.data.CompactMachinesLootFunctions;
import dev.compactmods.machines.room.network.RoomNetworkHandler;
import dev.compactmods.machines.tunnel.TunnelWallEntity;
import dev.compactmods.machines.core.Registries;
import dev.compactmods.machines.core.UIRegistration;
import dev.compactmods.machines.dimension.Dimension;
import dev.compactmods.machines.graph.Graph;
import dev.compactmods.machines.machine.Machines;
import dev.compactmods.machines.room.data.LootFunctions;
import dev.compactmods.machines.shrinking.Shrinking;
import dev.compactmods.machines.tunnel.Tunnels;
import dev.compactmods.machines.upgrade.MachineRoomUpgrades;
import dev.compactmods.machines.wall.Walls;
import io.github.fabricators_of_create.porting_lib.util.LazyItemGroup;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.ModInitializer;
Expand All @@ -36,7 +38,11 @@
import javax.annotation.Nonnull;

public class CompactMachines implements ModInitializer {
public static final String MOD_ID = "compactmachines";
/**
* @deprecated Switch usages to use api Constants in 1.20, eliminate it here
*/
@Deprecated(forRemoval = true)
public static final String MOD_ID = Constants.MOD_ID;

public static final Logger LOGGER = LogManager.getLogger();
public static final Marker CONN_MARKER = MarkerManager.getMarker("cm_connections");
Expand All @@ -45,34 +51,40 @@ public class CompactMachines implements ModInitializer {
@Override
public @Nonnull
ItemStack makeIcon() {
return new ItemStack(Registration.MACHINE_BLOCK_ITEM_NORMAL.get());
return new ItemStack(Machines.MACHINE_BLOCK_ITEM_NORMAL.get());
}
};

// public static CMRoomChunkloadingManager CHUNKLOAD_MANAGER;

@Override
public void onInitialize() {
// Register blocks and items
UIRegistration.init();
Tunnels.init();
CMGraphRegistration.init();
MachineRoomUpgrades.init();
CompactMachinesCommands.init();
CompactMachinesLootFunctions.init();

ModLoadingContext.registerConfig(MOD_ID, ModConfig.Type.COMMON, CommonConfig.CONFIG);
ModLoadingContext.registerConfig(MOD_ID, ModConfig.Type.SERVER, ServerConfig.CONFIG);
ModConfigEvent.LOADING.register(CommonConfig::onLoaded);
ServerWorldEvents.LOAD.register(ServerEventHandler::onWorldLoaded);
ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.register(ServerEventHandler::onPlayerDimChange);
ServerPlayConnectionEvents.JOIN.register(ServerEventHandler::onPlayerLogin);
CommonEventHandler.init();
RoomEventHandler.init();
ModBusEvents.setup();
Registries.setup();
preparePackages();
doRegistration();

// Configuration
ModLoadingContext mlCtx = ModLoadingContext.get();
mlCtx.registerConfig(ModConfig.Type.COMMON, CommonConfig.CONFIG);
mlCtx.registerConfig(ModConfig.Type.SERVER, ServerConfig.CONFIG);

EnableVanillaRecipesConfigCondition.register();

// UIRegistration.init(); TODO: PORT
// Tunnels.init();
// CMGraphRegistration.init();
// MachineRoomUpgrades.init();
// CompactMachinesCommands.init();
// CompactMachinesLootFunctions.init();
//
// ModLoadingContext.registerConfig(MOD_ID, ModConfig.Type.COMMON, CommonConfig.CONFIG);
// ModLoadingContext.registerConfig(MOD_ID, ModConfig.Type.SERVER, ServerConfig.CONFIG);
// ModConfigEvent.LOADING.register(CommonConfig::onLoaded);
// ServerWorldEvents.LOAD.register(ServerEventHandler::onWorldLoaded);
// ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.register(ServerEventHandler::onPlayerDimChange);
// ServerPlayConnectionEvents.JOIN.register(ServerEventHandler::onPlayerLogin);
// CommonEventHandler.init();
// RoomEventHandler.init();
// ModBusEvents.setup();

CompactMachinesNet.CHANNEL.initServerListener();
RoomNetworkHandler.CHANNEL.initServerListener();
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
Expand Down Expand Up @@ -104,4 +116,37 @@ public void onInitialize() {
return null;
}, Registration.MACHINE_TILE_ENTITY.get(), Tunnels.TUNNEL_BLOCK_ENTITY.get());
}

/**
* Sets up the deferred registration for usage in package/module setup.
*/
private static void doRegistration() {
var bus = FMLJavaModLoadingContext.get().getModEventBus();

Registries.BLOCKS.register(bus);
Registries.ITEMS.register(bus);
Registries.BLOCK_ENTITIES.register(bus);
Registries.TUNNEL_DEFINITIONS.register(bus);
Registries.CONTAINERS.register(bus);
Registries.UPGRADES.register(bus);
Registries.NODE_TYPES.register(bus);
Registries.EDGE_TYPES.register(bus);
Registries.COMMAND_ARGUMENT_TYPES.register(bus);
Registries.LOOT_FUNCS.register(bus);
}

private static void preparePackages() {
// Package initialization here, this kickstarts the rest of the DR code (classloading)
Machines.prepare();
Walls.prepare();
Tunnels.prepare();
Shrinking.prepare();

UIRegistration.prepare();
Dimension.prepare();
MachineRoomUpgrades.prepare();
Graph.prepare();
Commands.prepare();
LootFunctions.prepare();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import dev.compactmods.machines.advancement.trigger.BasicPlayerAdvTrigger;
import dev.compactmods.machines.advancement.trigger.HowDidYouGetHereTrigger;
import dev.compactmods.machines.api.core.Advancements;
import dev.compactmods.machines.room.RoomSize;
import dev.compactmods.machines.api.room.RoomSize;
import net.minecraft.advancements.CriteriaTriggers;

public class AdvancementTriggers {
Expand Down
Loading

0 comments on commit b092f5d

Please sign in to comment.