Forge is back. Testing starting

This commit is contained in:
2023-06-08 19:13:41 +02:00
parent cf68a5038b
commit 34eb975b3a
21 changed files with 88 additions and 68 deletions

View File

@@ -11,6 +11,7 @@ buildscript {
}
plugins {
id 'com.github.johnrengelman.shadow' version '7.0.0'
id "me.hypherionmc.modutils.modpublisher" version "1.0.16"
}
apply plugin: 'java'
apply plugin: 'net.minecraftforge.gradle'
@@ -82,10 +83,18 @@ minecraft {
sourceSets.main.resources.srcDir 'src/generated/resources'
configurations {
shade
implementation.extendsFrom shade
}
dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
compileOnly project(":Common")
annotationProcessor 'org.spongepowered:mixin:0.8.4-SNAPSHOT:processor'
shade "me.hypherionmc.moon-config:core:${moon_config}"
shade "me.hypherionmc.moon-config:toml:${moon_config}"
}
tasks.withType(JavaCompile) {
@@ -101,13 +110,10 @@ processResources {
}
shadowJar {
configurations = [project.configurations.shade]
dependencies {
include(dependency("me.hypherionmc.moon-config:core:${moon_config}"))
include(dependency("me.hypherionmc.moon-config:toml:${moon_config}"))
relocate 'me.hypherionmc.moonconfig', 'shadow.hypherionmc.moonconfig'
}
classifier ''
}
reobf {
@@ -155,3 +161,26 @@ task copyAllArtifacts(type: Copy) {
}
build.finalizedBy(copyAllArtifacts)
publisher {
apiKeys {
modrinth = System.getenv("MODRINTH_TOKEN")
curseforge = System.getenv("CURSE_TOKEN")
}
curseID = curse_id
modrinthID = modrinth_id
versionType = "release"
changelog = rootProject.file("changelog.md")
version = "${minecraft_version}-${project.version}"
displayName = "[FORGE 1.20] CraterLib - ${project.version}"
gameVersions = ["1.20"]
loaders = ["forge"]
artifact = jar
curseDepends {
required = ["craterlib"]
}
}
publishMod.dependsOn(build)

View File

@@ -1,11 +1,13 @@
package com.hypherionmc.craterlib;
import com.hypherionmc.craterlib.common.ForgeCommonEvents;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import net.minecraftforge.fml.common.Mod;
@Mod(CraterConstants.MOD_ID)
public class CraterLib {
public CraterLib() {
CraterEventBus.INSTANCE.registerEventListener(ForgeCommonEvents.class);
}
}

View File

@@ -2,20 +2,17 @@ package com.hypherionmc.craterlib.client;
import com.hypherionmc.craterlib.api.rendering.CustomRenderType;
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
import com.hypherionmc.craterlib.core.network.CraterPacket;
import com.hypherionmc.craterlib.core.platform.services.LibClientHelper;
import com.hypherionmc.craterlib.core.platform.ClientPlatform;
import com.hypherionmc.craterlib.core.systems.reg.RegistryObject;
import com.hypherionmc.craterlib.util.ColorPropertyFunction;
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
import net.minecraft.client.renderer.item.ItemProperties;
import net.minecraft.network.Connection;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity;
@@ -24,13 +21,12 @@ import net.minecraftforge.fml.loading.FMLEnvironment;
import java.util.Collection;
import java.util.Objects;
import java.util.function.Function;
/**
* @author HypherionSA
* @date 16/06/2022
*/
public class ForgeClientHelper implements LibClientHelper {
public class ForgeClientHelper implements ClientPlatform {
public ForgeClientHelper() {}
@@ -42,7 +38,7 @@ public class ForgeClientHelper implements LibClientHelper {
}
@Override
public void registerCustomRenderTypes(Collection<RegistryObject<Block>> blocks, Collection<RegistryObject<Item>> items) {
public void registerCustomRenderTypes(Collection<RegistryObject<Block>> blocks) {
blocks.forEach(blk -> {
if (blk.get() instanceof CustomRenderType type) {
ItemBlockRenderTypes.setRenderLayer(blk.get(), type.getCustomRenderType());
@@ -71,11 +67,6 @@ public class ForgeClientHelper implements LibClientHelper {
return Minecraft.getInstance().getConnection().getConnection();
}
@Override
public void registerClientReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory) {
// UNUSED
}
@Override
public void registerBlockEntityRenderer(BlockEntityType<? extends BlockEntity> blockEntityType, BlockEntityRendererProvider blockEntityRendererFactory) {
BlockEntityRenderers.register(blockEntityType, blockEntityRendererFactory);

View File

@@ -1,8 +1,8 @@
package com.hypherionmc.craterlib.client.gui.widgets;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.narration.NarrationElementOutput;
import net.minecraft.client.gui.screens.Screen;
@@ -36,7 +36,7 @@ public class FluidStackWidget extends AbstractWidget {
}
@Override
public void renderWidget(@NotNull PoseStack pPoseStack, int pMouseX, int pMouseY, float pPartialTicks) {
public void renderWidget(@NotNull GuiGraphics pPoseStack, int pMouseX, int pMouseY, float pPartialTicks) {
Minecraft minecraft = Minecraft.getInstance();
RenderSystem.setShader(GameRenderer::getPositionTexShader);
RenderSystem.defaultBlendFunc();
@@ -68,18 +68,18 @@ public class FluidStackWidget extends AbstractWidget {
int atlasWidth = (int)(sprite.getY() / (sprite.getU1() - sprite.getU0()));
int atlasHeight = (int)(sprite.getY() / (sprite.getV1() - sprite.getV0()));
pPoseStack.pushPose();
pPoseStack.translate(0, height-16, 0);
pPoseStack.pose().pushPose();
pPoseStack.pose().translate(0, height-16, 0);
for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) {
int drawingHeight = Math.min(16, renderableHeight - 16*i);
int notDrawingHeight = 16 - drawingHeight;
// TODO Double Check this
blit(pPoseStack, getX(), getY() + notDrawingHeight, 0, sprite.getU0()*atlasWidth, sprite.getV0()*atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight);
pPoseStack.translate(0,-16, 0);
pPoseStack.blit(TextureAtlas.LOCATION_BLOCKS, getX(), getY() + notDrawingHeight, 0, sprite.getU0()*atlasWidth, sprite.getV0()*atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight);
pPoseStack.pose().translate(0,-16, 0);
}
RenderSystem.setShaderColor(1, 1, 1, 1);
pPoseStack.popPose();
pPoseStack.pose().popPose();
}
}
//renderToolTip(pPoseStack, pMouseX, pMouseY);

View File

@@ -1,40 +1,40 @@
package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.CraterConstants;
import com.hypherionmc.craterlib.api.event.client.LateInitEvent;
import com.hypherionmc.craterlib.core.event.annot.CraterEventListener;
import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraftforge.event.CreativeModeTabEvent;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(modid = CraterConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ForgeCommonEvents {
@SubscribeEvent
public static void registerTabs(CreativeModeTabEvent.Register event) {
@CraterEventListener
public static void lateInit(LateInitEvent event) {
CraterConstants.LOG.info("Registering Creative Tabs");
CreativeTabRegistry.getTabs().forEach(tab -> {
CreativeModeTab creativeModeTab = event.registerCreativeModeTab(tab.getResourceLocation(), builder -> {
builder.title(
Component.translatable("itemGroup." +
tab.getResourceLocation().toString().replace(":", ".")
)
);
CreativeModeTab.Builder builder = CreativeModeTab.builder();
builder.title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", ".")));
builder.icon(tab.getIcon());
builder.icon(tab.getIcon());
if (!tab.getBackgroundSuffix().isEmpty()) {
builder.backgroundSuffix(tab.getBackgroundSuffix());
}
if (!tab.getBackgroundSuffix().isEmpty()) {
builder.backgroundSuffix(tab.getBackgroundSuffix());
}
});
tab.setTab(creativeModeTab);
CreativeModeTab tabb = Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tab.getResourceKey(), builder.build());
tab.setTab(tabb);
});
}
@SubscribeEvent
public static void registerTabs(CreativeModeTabEvent.BuildContents event) {
public static void registerTabs(BuildCreativeModeTabContentsEvent event) {
CreativeModeTab tab = event.getTab();
CreativeTabRegistry.getTabItems().stream()

View File

@@ -3,8 +3,7 @@ package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler;
import com.hypherionmc.craterlib.api.blockentity.caps.ICraterCapProvider;
import com.hypherionmc.craterlib.core.network.CraterNetworkHandler;
import com.hypherionmc.craterlib.core.network.CraterPacket;
import com.hypherionmc.craterlib.core.platform.services.LibCommonHelper;
import com.hypherionmc.craterlib.core.platform.CommonPlatform;
import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler;
import com.hypherionmc.craterlib.network.ForgeNetworkHandler;
import com.hypherionmc.craterlib.systems.energy.ForgeEnergyReader;
@@ -32,20 +31,19 @@ import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.Function;
/**
* @author HypherionSA
*/
public class ForgeCommonHelper implements LibCommonHelper {
public class ForgeCommonHelper implements CommonPlatform {
public static Map<ResourceLocation, CreativeModeTab> TABS = new HashMap<>();
public ForgeCommonHelper() {}
@Override
public CraterNetworkHandler createPacketHandler(String modid) {
return ForgeNetworkHandler.of(modid, true, true);
public CraterNetworkHandler createPacketHandler(String modid, boolean requiredClient, boolean requiredServer) {
return ForgeNetworkHandler.of(modid, requiredClient, requiredServer);
}
@Override
@@ -53,11 +51,6 @@ public class ForgeCommonHelper implements LibCommonHelper {
return ServerLifecycleHooks.getCurrentServer();
}
@Override
public void registerServerReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory) {
// UNUSED
}
@Override
public void openMenu(ServerPlayer player, MenuProvider menu, @Nullable Consumer<FriendlyByteBuf> initialData) {
if (initialData != null) {

View File

@@ -1,6 +1,6 @@
package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.core.platform.services.LibFluidHelper;
import com.hypherionmc.craterlib.core.platform.CraterFluidHelper;
import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank;
import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder;
import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler;
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
public class ForgeFluidHelper implements LibFluidHelper {
public class ForgeFluidHelper implements CraterFluidHelper {
@Override
public CraterFluidTank createFluidTank(int capacity) {

View File

@@ -1,7 +1,7 @@
package com.hypherionmc.craterlib.common;
import com.hypherionmc.craterlib.core.platform.services.Environment;
import com.hypherionmc.craterlib.core.platform.services.ILoaderHelper;
import com.hypherionmc.craterlib.core.platform.Environment;
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
import net.minecraft.SharedConstants;
import net.minecraft.client.Minecraft;
import net.minecraftforge.fml.ModList;
@@ -13,7 +13,7 @@ import java.io.File;
/**
* @author HypherionSA
*/
public class ForgeLoaderHelper implements ILoaderHelper {
public class ForgeLoaderHelper implements ModloaderEnvironment {
public ForgeLoaderHelper() {}
@@ -64,4 +64,9 @@ public class ForgeLoaderHelper implements ILoaderHelper {
public boolean isDevEnv() {
return !FMLLoader.isProduction();
}
@Override
public int getModCount() {
return ModList.get().size();
}
}

View File

@@ -66,7 +66,7 @@ public class ForgeNetworkHandler implements CraterNetworkHandler {
context.enqueueWork(() -> {
Player player;
if (packetDirection == PacketDirection.TO_CLIENT) {
player = ClientPlatform.CLIENT_HELPER.getClientPlayer();
player = ClientPlatform.INSTANCE.getClientPlayer();
} else {
player = context.getSender();
}

View File

@@ -1,5 +1,5 @@
modLoader = "javafml"
loaderVersion = "[45,)"
loaderVersion = "[46,)"
license = "MIT"
#issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/"
@@ -19,13 +19,13 @@ A library mod used by HypherionSA's Mods
[[dependencies.craterlib]]
modId = "forge"
mandatory = true
versionRange = "[45,)"
versionRange = "[46,)"
ordering = "NONE"
side = "BOTH"
[[dependencies.craterlib]]
modId = "minecraft"
mandatory = true
versionRange = "[1.19.4,1.20)"
versionRange = "[1.20,1.20.1)"
ordering = "NONE"
side = "BOTH"

View File

@@ -0,0 +1 @@
com.hypherionmc.craterlib.client.ForgeClientHelper

View File

@@ -0,0 +1 @@
com.hypherionmc.craterlib.common.ForgeCommonHelper

View File

@@ -0,0 +1 @@
com.hypherionmc.craterlib.common.ForgeFluidHelper

View File

@@ -0,0 +1 @@
com.hypherionmc.craterlib.common.ForgeLoaderHelper

View File

@@ -1 +0,0 @@
com.hypherionmc.craterlib.common.ForgeLoaderHelper

View File

@@ -1 +0,0 @@
com.hypherionmc.craterlib.client.ForgeClientHelper

View File

@@ -1 +0,0 @@
com.hypherionmc.craterlib.common.ForgeCommonHelper

View File

@@ -1 +0,0 @@
com.hypherionmc.craterlib.common.ForgeFluidHelper

View File

@@ -9,7 +9,7 @@ registrationUtils {
projects {
Common { type 'common'; project ':Common' }
Fabric { type 'fabric'; project ':Fabric' }
//Forge { type 'forge'; project ':Forge' }
Forge { type 'forge'; project ':Forge' }
}
}

View File

@@ -11,7 +11,7 @@ common_client_run_name=Common Client
common_server_run_name=Common Server
# Forge
forge_version=45.0.9
forge_version=46.0.1
forge_ats_enabled=true
# Fabric

View File

@@ -16,4 +16,4 @@ pluginManagement {
}
rootProject.name = 'CraterLib'
include("Common", "Fabric", /*"Forge"*/)
include("Common", "Fabric", "Forge")