Forge is back. Testing starting
This commit is contained in:
@@ -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)
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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()
|
||||
|
@@ -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) {
|
||||
|
@@ -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) {
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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"
|
||||
|
@@ -0,0 +1 @@
|
||||
com.hypherionmc.craterlib.client.ForgeClientHelper
|
@@ -0,0 +1 @@
|
||||
com.hypherionmc.craterlib.common.ForgeCommonHelper
|
@@ -0,0 +1 @@
|
||||
com.hypherionmc.craterlib.common.ForgeFluidHelper
|
@@ -0,0 +1 @@
|
||||
com.hypherionmc.craterlib.common.ForgeLoaderHelper
|
@@ -1 +0,0 @@
|
||||
com.hypherionmc.craterlib.common.ForgeLoaderHelper
|
@@ -1 +0,0 @@
|
||||
com.hypherionmc.craterlib.client.ForgeClientHelper
|
@@ -1 +0,0 @@
|
||||
com.hypherionmc.craterlib.common.ForgeCommonHelper
|
@@ -1 +0,0 @@
|
||||
com.hypherionmc.craterlib.common.ForgeFluidHelper
|
Reference in New Issue
Block a user