Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.20.1] Fixing Epic Fight crash #1079

Open
wants to merge 1 commit into
base: 1.20.1/api
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ dependencies {
// Mekanism
modCompileOnly ("curse.maven:mekanism-268560:4644795")

// Epic Fight Compat
modCompileOnly("maven.modrinth:epic-fight:20.9.6")

// Add Kotlin for Forge (3.12.0)
forgeRuntimeLibrary("maven.modrinth:kotlin-for-forge:${kotlin_version}")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.valkyrienskies.mod.forge.compat.epicfight;

import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.state.BlockState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.valkyrienskies.core.apigame.world.chunks.BlockType;
import org.valkyrienskies.mod.common.BlockStateInfo;
import org.valkyrienskies.mod.common.BlockStateInfoProvider;
import org.valkyrienskies.mod.common.ValkyrienSkiesMod;
import yesman.epicfight.main.EpicFightMod;
import yesman.epicfight.world.level.block.FractureBlockState;

public class FracturedBlockStateInfoProvider implements BlockStateInfoProvider {
public static void register() {
Registry.register(BlockStateInfo.INSTANCE.getREGISTRY(),
new ResourceLocation(EpicFightMod.MODID, "fractured"), new FracturedBlockStateInfoProvider());
}

@Override
public int getPriority() {
return 101;
}

@Nullable
@Override
public Double getBlockStateMass(@NotNull BlockState blockState) {
if (blockState instanceof FractureBlockState)
return 0.0;
return null;
}

@Nullable
@Override
public BlockType getBlockStateType(@NotNull BlockState blockState) {
if (blockState instanceof FractureBlockState)
return ValkyrienSkiesMod.vsCore.getBlockTypes().getSolid();
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
EpicFight Compat Class

- FracturedBlockStateInfoProvider
- Epic Fight adds its own custom BlockState called FracturedBlockState that only exists on the Client and cannot be handled by MassDatapackResolver
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.valkyrienskies.mod.forge.common

import net.minecraft.commands.Commands.CommandSelection.ALL
import net.minecraft.commands.Commands.CommandSelection.INTEGRATED
import net.minecraft.core.Registry
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.entity.EntityType
Expand All @@ -17,10 +18,13 @@ import net.minecraftforge.client.event.RegisterKeyMappingsEvent
import net.minecraftforge.event.AddReloadListenerEvent
import net.minecraftforge.event.RegisterCommandsEvent
import net.minecraftforge.event.TagsUpdatedEvent
import net.minecraftforge.fml.ModList
import net.minecraftforge.fml.ModLoadingContext
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
import net.minecraftforge.fml.javafmlmod.FMLModContainer
import net.minecraftforge.fml.loading.FMLEnvironment
import net.minecraftforge.registries.DeferredRegister
import net.minecraftforge.registries.ForgeRegistries
Expand All @@ -29,6 +33,7 @@ import org.valkyrienskies.core.apigame.VSCoreFactory
import org.valkyrienskies.core.impl.config_impl.VSCoreConfig
import org.valkyrienskies.mod.client.EmptyRenderer
import org.valkyrienskies.mod.client.VSPhysicsEntityRenderer
import org.valkyrienskies.mod.common.BlockStateInfo
import org.valkyrienskies.mod.common.ValkyrienSkiesMod
import org.valkyrienskies.mod.common.ValkyrienSkiesMod.MOD_ID
import org.valkyrienskies.mod.common.block.TestChairBlock
Expand All @@ -52,6 +57,8 @@ import org.valkyrienskies.mod.common.item.PhysicsEntityCreatorItem
import org.valkyrienskies.mod.common.item.ShipAssemblerItem
import org.valkyrienskies.mod.common.item.ShipCreatorItem
import org.valkyrienskies.mod.compat.clothconfig.VSClothConfig
import org.valkyrienskies.mod.forge.compat.epicfight.FracturedBlockStateInfoProvider
import kotlin.reflect.jvm.internal.impl.platform.PlatformUtilKt

@Mod(MOD_ID)
class ValkyrienSkiesModForge {
Expand Down Expand Up @@ -184,6 +191,10 @@ class ValkyrienSkiesModForge {
ValkyrienSkiesMod.createCreativeTab()
}
deferredRegister.register(modBus)

if (ModList.get().isLoaded("epicfight")) {
FracturedBlockStateInfoProvider.register()
}
}

private fun registerResourceManagers(event: AddReloadListenerEvent) {
Expand Down
Loading