Port to release 1.21.5
This commit is contained in:
parent
e6c966cb89
commit
26769c3869
|
|
@ -1,6 +1,6 @@
|
||||||
plugins {
|
plugins {
|
||||||
id "architectury-plugin" version "3.4-SNAPSHOT"
|
id "architectury-plugin" version "3.4-SNAPSHOT"
|
||||||
id "dev.architectury.loom" version "1.9-SNAPSHOT" apply false
|
id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false
|
||||||
id "maven-publish"
|
id "maven-publish"
|
||||||
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
|
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
|
||||||
id 'com.palantir.git-version' version '1.0.0'
|
id 'com.palantir.git-version' version '1.0.0'
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ repositories {
|
||||||
exclusiveContent {
|
exclusiveContent {
|
||||||
forRepository {
|
forRepository {
|
||||||
maven {
|
maven {
|
||||||
url = 'https://maven.saps.dev/minecraft'
|
url = 'https://maven.latvian.dev/releases'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
filter {
|
filter {
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,7 @@ import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import com.mojang.serialization.JsonOps;
|
import com.mojang.serialization.JsonOps;
|
||||||
import net.minecraft.client.model.geom.EntityModelSet;
|
import net.minecraft.client.model.geom.EntityModelSet;
|
||||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
import net.minecraft.client.renderer.block.model.*;
|
||||||
import net.minecraft.client.renderer.block.model.BlockModelDefinition;
|
|
||||||
import net.minecraft.client.renderer.block.model.BlockStateModel;
|
|
||||||
import net.minecraft.client.renderer.block.model.ItemModelGenerator;
|
|
||||||
import net.minecraft.client.renderer.block.model.SimpleModelWrapper;
|
|
||||||
import net.minecraft.client.renderer.item.ClientItem;
|
import net.minecraft.client.renderer.item.ClientItem;
|
||||||
import net.minecraft.client.renderer.item.ItemModel;
|
import net.minecraft.client.renderer.item.ItemModel;
|
||||||
import net.minecraft.client.renderer.item.MissingItemModel;
|
import net.minecraft.client.renderer.item.MissingItemModel;
|
||||||
|
|
@ -33,16 +29,19 @@ import net.minecraft.client.resources.model.ModelState;
|
||||||
import net.minecraft.client.resources.model.ResolvedModel;
|
import net.minecraft.client.resources.model.ResolvedModel;
|
||||||
import net.minecraft.client.resources.model.SpriteGetter;
|
import net.minecraft.client.resources.model.SpriteGetter;
|
||||||
import net.minecraft.client.resources.model.UnbakedModel;
|
import net.minecraft.client.resources.model.UnbakedModel;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.server.packs.resources.Resource;
|
import net.minecraft.server.packs.resources.Resource;
|
||||||
import net.minecraft.server.packs.resources.ResourceManager;
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
import net.minecraft.util.GsonHelper;
|
import net.minecraft.util.GsonHelper;
|
||||||
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.StateDefinition;
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
import org.embeddedt.modernfix.ModernFix;
|
import org.embeddedt.modernfix.ModernFix;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
@ -146,16 +145,46 @@ public class DynamicModelProvider {
|
||||||
public SpriteGetter sprites() {
|
public SpriteGetter sprites() {
|
||||||
return DynamicModelProvider.this.textureGetter;
|
return DynamicModelProvider.this.textureGetter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T compute(SharedOperationKey<T> key) {
|
||||||
|
return key.compute(this);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
var textureSlots = this.resolvedMissingModel.getTopTextureSlots();
|
var textureSlots = this.resolvedMissingModel.getTopTextureSlots();
|
||||||
var quadCollection = this.resolvedMissingModel.bakeTopGeometry(textureSlots, missingModelBaker, BlockModelRotation.X0_Y0);
|
var quadCollection = this.resolvedMissingModel.bakeTopGeometry(textureSlots, missingModelBaker, BlockModelRotation.X0_Y0);
|
||||||
var particleSprite = this.resolvedMissingModel.resolveParticleSprite(textureSlots, missingModelBaker);
|
var particleSprite = this.resolvedMissingModel.resolveParticleSprite(textureSlots, missingModelBaker);
|
||||||
this.missingModel = new SimpleModelWrapper(quadCollection, resolvedMissingModel.getTopAmbientOcclusion(), particleSprite);
|
this.missingModel = new BlockStateModel() {
|
||||||
|
@Override
|
||||||
|
public void collectParts(RandomSource random, List<BlockModelPart> output) {
|
||||||
|
output.add(new BlockModelPart() {
|
||||||
|
@Override
|
||||||
|
public List<BakedQuad> getQuads(@Nullable Direction direction) {
|
||||||
|
return quadCollection.getQuads(direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useAmbientOcclusion() {
|
||||||
|
return resolvedMissingModel.getTopAmbientOcclusion();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TextureAtlasSprite particleIcon() {
|
||||||
|
return particleSprite;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TextureAtlasSprite particleIcon() {
|
||||||
|
return particleSprite;
|
||||||
|
}
|
||||||
|
}; //SimpleModelWrapper(quadCollection, resolvedMissingModel.getTopAmbientOcclusion(), particleSprite);
|
||||||
this.missingItemModel = new MissingItemModel(quadCollection.getAll(), new ModelRenderProperties(resolvedMissingModel.getTopGuiLight().lightLikeBlock(), particleSprite, resolvedMissingModel.getTopTransforms()));
|
this.missingItemModel = new MissingItemModel(quadCollection.getAll(), new ModelRenderProperties(resolvedMissingModel.getTopGuiLight().lightLikeBlock(), particleSprite, resolvedMissingModel.getTopTransforms()));
|
||||||
try {
|
try {
|
||||||
Class.forName("net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin");
|
Class.forName("net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin");
|
||||||
// TODO
|
// TODO
|
||||||
//pluginList.add(new FabricDynamicModelHandler(this, this.resourceManager));
|
// pluginList.add(new FabricDynamicModelHandler(this, this.resourceManager));
|
||||||
} catch(Exception ignored) {
|
} catch(Exception ignored) {
|
||||||
// Fabric API likely not present
|
// Fabric API likely not present
|
||||||
}
|
}
|
||||||
|
|
@ -365,7 +394,7 @@ public class DynamicModelProvider {
|
||||||
var loadedModels = new HashMap<>(BlockStateModelLoader.loadBlockStateDefinitionStack(location, stateDefinition, loadedDefinitions).models());
|
var loadedModels = new HashMap<>(BlockStateModelLoader.loadBlockStateDefinitionStack(location, stateDefinition, loadedDefinitions).models());
|
||||||
if (!pluginList.isEmpty()) {
|
if (!pluginList.isEmpty()) {
|
||||||
loadedModels.replaceAll((mrl, oldModel) -> {
|
loadedModels.replaceAll((mrl, oldModel) -> {
|
||||||
BlockStateModel.Unbaked ubm = oldModel;
|
BlockStateModel.UnbakedRoot ubm = oldModel;
|
||||||
for (var plugin : pluginList) {
|
for (var plugin : pluginList) {
|
||||||
ubm = plugin.modifyBlockModelOnLoad(oldModel, mrl);
|
ubm = plugin.modifyBlockModelOnLoad(oldModel, mrl);
|
||||||
}
|
}
|
||||||
|
|
@ -375,7 +404,7 @@ public class DynamicModelProvider {
|
||||||
return Optional.of(new BlockStateModelLoader.LoadedModels(loadedModels));
|
return Optional.of(new BlockStateModelLoader.LoadedModels(loadedModels));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BlockStateModel bakeModel(BlockStateModel.Unbaked model, BlockState mrl) {
|
private BlockStateModel bakeModel(BlockStateModel.UnbakedRoot model, BlockState mrl) {
|
||||||
if (DEBUG_DYNAMIC_MODEL_LOADING) {
|
if (DEBUG_DYNAMIC_MODEL_LOADING) {
|
||||||
ModernFix.LOGGER.info("Baking model '{}'", mrl);
|
ModernFix.LOGGER.info("Baking model '{}'", mrl);
|
||||||
}
|
}
|
||||||
|
|
@ -385,7 +414,7 @@ public class DynamicModelProvider {
|
||||||
for (var plugin : pluginList) {
|
for (var plugin : pluginList) {
|
||||||
model = plugin.modifyBlockModelBeforeBake(model, mrl, modelBaker);
|
model = plugin.modifyBlockModelBeforeBake(model, mrl, modelBaker);
|
||||||
}
|
}
|
||||||
var bakedModel = model.bake(modelBaker);
|
var bakedModel = model.bake(mrl, modelBaker);
|
||||||
for (var plugin : pluginList) {
|
for (var plugin : pluginList) {
|
||||||
bakedModel = plugin.modifyBlockModelAfterBake(bakedModel, model, mrl, modelBaker);
|
bakedModel = plugin.modifyBlockModelAfterBake(bakedModel, model, mrl, modelBaker);
|
||||||
}
|
}
|
||||||
|
|
@ -401,7 +430,8 @@ public class DynamicModelProvider {
|
||||||
if (false) { //location.variant().equals("standalone") || location.variant().equals("fabric_resource")) {
|
if (false) { //location.variant().equals("standalone") || location.variant().equals("fabric_resource")) {
|
||||||
throw new UnsupportedOperationException(); //return this.loadStandaloneModel(location.id());
|
throw new UnsupportedOperationException(); //return this.loadStandaloneModel(location.id());
|
||||||
} else {
|
} else {
|
||||||
Optional<BlockStateModel.Unbaked> unbakedModelOpt = Optional.ofNullable(this.unbakedBlockStateModelOverrides.get(state));
|
Optional<BlockStateModel.UnbakedRoot> unbakedModelOpt = Optional.ofNullable(this.unbakedBlockStateModelOverrides.get(state))
|
||||||
|
.map(BlockStateModel.Unbaked::asRoot);
|
||||||
if (unbakedModelOpt.isEmpty()) {
|
if (unbakedModelOpt.isEmpty()) {
|
||||||
var optLoadedModels = this.loadedStateDefinitions.getUnchecked(state.getBlock().builtInRegistryHolder().key().location());
|
var optLoadedModels = this.loadedStateDefinitions.getUnchecked(state.getBlock().builtInRegistryHolder().key().location());
|
||||||
unbakedModelOpt = optLoadedModels.map(loadedModels -> loadedModels.models().get(state));
|
unbakedModelOpt = optLoadedModels.map(loadedModels -> loadedModels.models().get(state));
|
||||||
|
|
@ -552,6 +582,11 @@ public class DynamicModelProvider {
|
||||||
public SpriteGetter sprites() {
|
public SpriteGetter sprites() {
|
||||||
return DynamicModelProvider.this.textureGetter;
|
return DynamicModelProvider.this.textureGetter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T compute(SharedOperationKey<T> key) {
|
||||||
|
return key.compute(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static WeakReference<DynamicModelProvider> currentReloadingModelProvider = new WeakReference<>(null);
|
public static WeakReference<DynamicModelProvider> currentReloadingModelProvider = new WeakReference<>(null);
|
||||||
|
|
@ -562,12 +597,12 @@ public class DynamicModelProvider {
|
||||||
|
|
||||||
public interface DynamicModelPlugin {
|
public interface DynamicModelPlugin {
|
||||||
Optional<UnbakedModel> modifyModelOnLoad(Optional<UnbakedModel> model, ResourceLocation id);
|
Optional<UnbakedModel> modifyModelOnLoad(Optional<UnbakedModel> model, ResourceLocation id);
|
||||||
BlockStateModel.Unbaked modifyBlockModelOnLoad(BlockStateModel.Unbaked model, BlockState state);
|
BlockStateModel.UnbakedRoot modifyBlockModelOnLoad(BlockStateModel.UnbakedRoot model, BlockState state);
|
||||||
|
|
||||||
UnbakedModel modifyModelBeforeBake(UnbakedModel model, ResourceLocation id, ModelState state, ModelBaker baker);
|
UnbakedModel modifyModelBeforeBake(UnbakedModel model, ResourceLocation id, ModelState state, ModelBaker baker);
|
||||||
//BakedModel modifyModelAfterBake(BakedModel bakedModel, UnbakedModel model, ResourceLocation id, ModelState state, ModelBaker baker);
|
//BakedModel modifyModelAfterBake(BakedModel bakedModel, UnbakedModel model, ResourceLocation id, ModelState state, ModelBaker baker);
|
||||||
|
|
||||||
BlockStateModel.Unbaked modifyBlockModelBeforeBake(BlockStateModel.Unbaked model, BlockState state, ModelBaker baker);
|
BlockStateModel.UnbakedRoot modifyBlockModelBeforeBake(BlockStateModel.UnbakedRoot model, BlockState state, ModelBaker baker);
|
||||||
BlockStateModel modifyBlockModelAfterBake(BlockStateModel bakedModel, BlockStateModel.Unbaked unbaked, BlockState state, ModelBaker baker);
|
BlockStateModel modifyBlockModelAfterBake(BlockStateModel bakedModel, BlockStateModel.UnbakedRoot unbaked, BlockState state, ModelBaker baker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,23 @@ junit_version=5.10.0-M1
|
||||||
mixinextras_version=0.4.1
|
mixinextras_version=0.4.1
|
||||||
|
|
||||||
mod_id=modernfix
|
mod_id=modernfix
|
||||||
minecraft_version=25w07a
|
minecraft_version=1.21.5
|
||||||
enabled_platforms=fabric
|
enabled_platforms=neoforge,fabric
|
||||||
forge_version=21.4.47-beta
|
forge_version=21.5.81
|
||||||
parchment_version=2024.12.22
|
parchment_version=2025.06.15
|
||||||
parchment_mc_version=1.21.4
|
parchment_mc_version=1.21.5
|
||||||
refined_storage_version=4392788
|
refined_storage_version=4392788
|
||||||
jei_version=19.0.0.9
|
jei_version=19.0.0.9
|
||||||
rei_version=13.0.678
|
rei_version=13.0.678
|
||||||
ctm_version=1.21-1.2.0+2
|
ctm_version=5541286
|
||||||
|
# ctm_version=1.21-1.2.0+2
|
||||||
ldlib_version=5782845
|
ldlib_version=5782845
|
||||||
kubejs_version=1902.6.0-build.142
|
kubejs_version=2001.6.5-build.16
|
||||||
rhino_version=1902.2.2-build.268
|
rhino_version=2001.2.3-build.10
|
||||||
supported_minecraft_versions=25w07a
|
supported_minecraft_versions=1.21.5
|
||||||
|
|
||||||
fabric_loader_version=0.16.10
|
fabric_loader_version=0.16.10
|
||||||
fabric_api_version=0.116.1+1.21.5
|
fabric_api_version=0.119.5+1.21.5
|
||||||
|
|
||||||
continuity_version=3.0.0-beta.4+1.20.2
|
continuity_version=3.0.0-beta.4+1.20.2
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ dependencies {
|
||||||
modCompileOnly("me.shedaniel:RoughlyEnoughItems-forge:${rei_version}") { transitive false }
|
modCompileOnly("me.shedaniel:RoughlyEnoughItems-forge:${rei_version}") { transitive false }
|
||||||
modCompileOnly("dev.latvian.mods:kubejs-forge:${kubejs_version}")
|
modCompileOnly("dev.latvian.mods:kubejs-forge:${kubejs_version}")
|
||||||
//modRuntimeOnly("curse.maven:ferritecore-429235:4441949")
|
//modRuntimeOnly("curse.maven:ferritecore-429235:4441949")
|
||||||
modCompileOnly("team.chisel.ctm:CTM:${ctm_version}")
|
modCompileOnly("curse.maven:CTM-267602:${ctm_version}")
|
||||||
modCompileOnly("curse.maven:ldlib-626676:${ldlib_version}")
|
modCompileOnly("curse.maven:ldlib-626676:${ldlib_version}")
|
||||||
|
|
||||||
modCompileOnly("curse.maven:supermartijncore-454372:4455391")
|
modCompileOnly("curse.maven:supermartijncore-454372:4455391")
|
||||||
|
|
|
||||||
|
|
@ -40,12 +40,14 @@ public class ModelBakeEventHelper {
|
||||||
|
|
||||||
public ModelBakery.BakingResult createDynamicResult() {
|
public ModelBakery.BakingResult createDynamicResult() {
|
||||||
return new ModelBakery.BakingResult(
|
return new ModelBakery.BakingResult(
|
||||||
this.modelRegistry.getMissingBakedModel(),
|
new ModelBakery.MissingModels(
|
||||||
|
this.modelRegistry.getMissingBakedModel(),
|
||||||
|
this.modelRegistry.getMissingItemModel()
|
||||||
|
),
|
||||||
this.modelRegistry.getTopLevelEmulatedRegistry(),
|
this.modelRegistry.getTopLevelEmulatedRegistry(),
|
||||||
this.modelRegistry.getMissingItemModel(),
|
|
||||||
this.modelRegistry.getItemModelEmulatedRegistry(),
|
this.modelRegistry.getItemModelEmulatedRegistry(),
|
||||||
this.modelRegistry.getItemPropertiesEmulatedRegistry(),
|
this.modelRegistry.getItemPropertiesEmulatedRegistry()
|
||||||
this.modelRegistry.getStandaloneEmulatedRegistry()
|
// TODO: Supply the StandaloneModelLoader.BakedModels?
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
|
|
||||||
import java.util.Deque;
|
import java.util.List;
|
||||||
|
|
||||||
@Mixin(PoseStack.class)
|
@Mixin(PoseStack.class)
|
||||||
@ClientOnlyMixin
|
@ClientOnlyMixin
|
||||||
public interface PoseStackAccessor {
|
public interface PoseStackAccessor {
|
||||||
@Accessor
|
@Accessor("poses")
|
||||||
Deque<PoseStack.Pose> getPoseStack();
|
List<PoseStack.Pose> getPoseStack();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
@Mixin(ModelManager.class)
|
@Mixin(ModelManager.class)
|
||||||
@ClientOnlyMixin
|
@ClientOnlyMixin
|
||||||
public class ModelManagerMixinNeo {
|
public class ModelManagerMixinNeo {
|
||||||
@ModifyArg(method = "loadModels", at = @At(value = "INVOKE", target = "Lnet/neoforged/neoforge/client/ClientHooks;onModifyBakingResult(Lnet/minecraft/client/resources/model/ModelBakery$BakingResult;Ljava/util/Map;Lnet/minecraft/client/resources/model/ModelBakery;)V"), remap = false, index = 0)
|
@ModifyArg(method = "lambda$loadModels$18", at = @At(value = "INVOKE", target = "Lnet/neoforged/neoforge/client/ClientHooks;onModifyBakingResult(Lnet/minecraft/client/resources/model/ModelBakery$BakingResult;Ljava/util/Map;Lnet/minecraft/client/resources/model/ModelBakery;)V"), remap = false, index = 0)
|
||||||
private static ModelBakery.BakingResult useDynamicBakingResult(ModelBakery.BakingResult bakingResult) {
|
private static ModelBakery.BakingResult useDynamicBakingResult(ModelBakery.BakingResult bakingResult) {
|
||||||
var currentReloadingProvider = DynamicModelProvider.currentReloadingModelProvider.get();
|
var currentReloadingProvider = DynamicModelProvider.currentReloadingModelProvider.get();
|
||||||
if(ModLoader.hasErrors() || currentReloadingProvider == null) {
|
if(ModLoader.hasErrors() || currentReloadingProvider == null) {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||||
@Mixin(ObjLoader.class)
|
@Mixin(ObjLoader.class)
|
||||||
@ClientOnlyMixin
|
@ClientOnlyMixin
|
||||||
public class OBJLoaderMixin {
|
public class OBJLoaderMixin {
|
||||||
|
/* TODO: Remove if unnecessary
|
||||||
@Final
|
@Final
|
||||||
@Mutable
|
@Mutable
|
||||||
@Shadow(remap = false) private Map<ResourceLocation, ObjMaterialLibrary> materialCache;
|
@Shadow(remap = false) private Map<ResourceLocation, ObjMaterialLibrary> materialCache;
|
||||||
|
|
@ -36,4 +37,5 @@ public class OBJLoaderMixin {
|
||||||
private void useConcMap2(ObjLoader instance, Map<ResourceLocation, ObjMaterialLibrary> value) {
|
private void useConcMap2(ObjLoader instance, Map<ResourceLocation, ObjMaterialLibrary> value) {
|
||||||
this.modelCache = new ConcurrentHashMap<>();
|
this.modelCache = new ConcurrentHashMap<>();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package org.embeddedt.modernfix.neoforge.util;
|
package org.embeddedt.modernfix.neoforge.util;
|
||||||
|
|
||||||
import net.neoforged.fml.loading.ImmediateWindowHandler;
|
import net.neoforged.fml.loading.FMLLoader;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import org.lwjgl.opengl.GL;
|
import org.lwjgl.opengl.GL;
|
||||||
import org.lwjgl.opengl.GLCapabilities;
|
import org.lwjgl.opengl.GLCapabilities;
|
||||||
|
|
@ -40,7 +40,7 @@ public class AsyncLoadingScreen extends Thread implements AutoCloseable {
|
||||||
GL.setCapabilities(caps);
|
GL.setCapabilities(caps);
|
||||||
while(keepRunning.get()) {
|
while(keepRunning.get()) {
|
||||||
LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(50));
|
LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(50));
|
||||||
ImmediateWindowHandler.renderTick();
|
FMLLoader.progressWindowTick.run();
|
||||||
}
|
}
|
||||||
GLFW.glfwMakeContextCurrent(0);
|
GLFW.glfwMakeContextCurrent(0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user