Attempt to fix client crashes. And update solid static.
This commit is contained in:
parent
9091b77aa3
commit
f7eae5f5e8
6 changed files with 31 additions and 35 deletions
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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 |
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 4,
|
||||
"interpolate": true
|
||||
"frametime": 1,
|
||||
"interpolate": false
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue