Attempt to fix client crashes. And update solid static.

This commit is contained in:
Waterpicker 2023-08-13 04:19:59 -05:00
parent 9091b77aa3
commit f7eae5f5e8
6 changed files with 31 additions and 35 deletions

View file

@ -49,10 +49,4 @@ public class ModBlockEntityTypes {
public static void init() {
BLOCK_ENTITY_TYPES.register();
}
@Environment(EnvType.CLIENT)
public static void initClient() {
BlockEntityRendererRegistry.register(ModBlockEntityTypes.ENTRANCE_RIFT.get(), context -> new EntranceRiftBlockEntityRenderer());
BlockEntityRendererRegistry.register(ModBlockEntityTypes.DETACHED_RIFT.get(), ctx -> new DetachedRiftBlockEntityRenderer());
}
}

View file

@ -2,27 +2,26 @@ package org.dimdev.dimdoors.client;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import dev.architectury.event.events.client.ClientReloadShadersEvent;
import dev.architectury.registry.client.level.entity.EntityRendererRegistry;
import dev.architectury.registry.client.particle.ParticleProviderRegistry;
import dev.architectury.registry.client.rendering.BlockEntityRendererRegistry;
import dev.architectury.registry.menu.MenuRegistry;
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.gui.registry.GuiRegistry;
import me.shedaniel.autoconfig.gui.registry.api.GuiProvider;
import me.shedaniel.autoconfig.gui.registry.api.GuiRegistryAccess;
import me.shedaniel.autoconfig.util.Utils;
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.ShaderInstance;
import net.minecraft.network.chat.Component;
import org.dimdev.dimdoors.DimensionalDoors;
import org.dimdev.dimdoors.ModConfig;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.ModBlockEntityTypes;
import org.dimdev.dimdoors.client.config.ModMenu;
import org.dimdev.dimdoors.client.screen.TesselatingLoomScreen;
import org.dimdev.dimdoors.entity.ModEntityTypes;
import org.dimdev.dimdoors.network.client.ClientPacketHandler;
import org.dimdev.dimdoors.particle.ModParticleTypes;
import org.dimdev.dimdoors.particle.client.LimboAshParticle;
import org.dimdev.dimdoors.particle.client.MonolithParticle;
import org.dimdev.dimdoors.particle.client.RiftParticle;
import org.dimdev.dimdoors.screen.ModScreenHandlerTypes;
import java.io.IOException;
@ -37,18 +36,22 @@ import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.dimdev.dimdoors.particle.ModParticleTypes.*;
@Environment(EnvType.CLIENT)
public class DimensionalDoorsClient {
private static final ConfigEntryBuilder ENTRY_BUILDER = ConfigEntryBuilder.create();
public static void init() {
MenuRegistry.registerScreenFactory(ModScreenHandlerTypes.TESSELATING_LOOM.get(), TesselatingLoomScreen::new);
ModEntityTypes.initClient();
initEntitiesClient();
// ModFluids.initClient();
ModBlockEntityTypes.initClient();
initBlockEntitiesClient();
ModBlocks.initClient();
ModEntityModelLayers.initClient();
registerParticles();
AutoConfig.getGuiRegistry(ModConfig.class).registerPredicateProvider((i18n, field, config, defaults, registry) -> Collections.singletonList(ENTRY_BUILDER
.startStrList(Component.translatable(i18n), ((Set<String>) Utils.getUnsafely(field, config, defaults)).stream().toList())
.setSaveConsumer(newValue -> Utils.setUnsafely(field, config, newValue.stream().collect(Collectors.toSet()))).build()), isSetOfType(String.class));
@ -59,6 +62,17 @@ public class DimensionalDoorsClient {
ClientPacketHandler.init();
}
@Environment(EnvType.CLIENT)
public static void initEntitiesClient() {
EntityRendererRegistry.register(ModEntityTypes.MONOLITH, MonolithRenderer::new);
// EntityRendererRegistry.INSTANCE.register(MASK, MaskRenderer::new);
}
@Environment(EnvType.CLIENT)
public static void initBlockEntitiesClient() {
BlockEntityRendererRegistry.register(ModBlockEntityTypes.ENTRANCE_RIFT.get(), context -> new EntranceRiftBlockEntityRenderer());
BlockEntityRendererRegistry.register(ModBlockEntityTypes.DETACHED_RIFT.get(), ctx -> new DetachedRiftBlockEntityRenderer());
}
private static Predicate<Field> isListOfType(Type... types) {
return field -> {
@ -91,4 +105,10 @@ public class DimensionalDoorsClient {
}
});
}
public static void registerParticles() {
ParticleProviderRegistry.register(MONOLITH, (particleOptions, clientLevel, x, y, z, g, h, i) -> new MonolithParticle(clientLevel, x, y, z));
ParticleProviderRegistry.register(RIFT, RiftParticle.Factory::new);
ParticleProviderRegistry.register(LIMBO_ASH, LimboAshParticle.Factory::new);
}
}

View file

@ -36,12 +36,6 @@ public class ModEntityTypes {
EntityAttributeRegistry.register(MASK, MonolithEntity::createMobAttributes);
}
@Environment(EnvType.CLIENT)
public static void initClient() {
EntityRendererRegistry.register(MONOLITH, MonolithRenderer::new);
// EntityRendererRegistry.INSTANCE.register(MASK, MaskRenderer::new);
}
private static <E extends Entity> RegistrySupplier<EntityType<E>> register(String id, EntityType.EntityFactory<E> factory, float width, float height, boolean fixed) {
return ENTITY_TYPES.register(id, () -> EntityType.Builder.of(factory, MobCategory.MONSTER).sized(width, height).canSpawnFarFromPlayer().fireImmune().build(id));
}

View file

@ -1,17 +1,11 @@
package org.dimdev.dimdoors.particle;
import dev.architectury.platform.Platform;
import dev.architectury.registry.client.particle.ParticleProviderRegistry;
import dev.architectury.registry.registries.DeferredRegister;
import dev.architectury.registry.registries.RegistrySupplier;
import dev.architectury.utils.Env;
import net.minecraft.core.particles.ParticleType;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.core.registries.Registries;
import org.dimdev.dimdoors.DimensionalDoors;
import org.dimdev.dimdoors.particle.client.LimboAshParticle;
import org.dimdev.dimdoors.particle.client.MonolithParticle;
import org.dimdev.dimdoors.particle.client.RiftParticle;
public class ModParticleTypes {
public static final DeferredRegister<ParticleType<?>> REGISTRY = DeferredRegister.create(DimensionalDoors.MOD_ID, Registries.PARTICLE_TYPE);
@ -21,11 +15,5 @@ public class ModParticleTypes {
public static void init() {
REGISTRY.register();
if (Platform.getEnvironment() == Env.CLIENT) {
ParticleProviderRegistry.register(MONOLITH, (particleOptions, clientLevel, x, y, z, g, h, i) -> new MonolithParticle(clientLevel, x, y, z));
ParticleProviderRegistry.register(RIFT, RiftParticle.Factory::new);
ParticleProviderRegistry.register(LIMBO_ASH, LimboAshParticle.Factory::new);
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -1,6 +1,6 @@
{
"animation": {
"frametime": 4,
"interpolate": true
"frametime": 1,
"interpolate": false
}
}