Merge pull request #157 from BoogieMonster1O1/1.16

Registered BERs
This commit is contained in:
Waterpicker 2020-07-19 23:37:39 -05:00 committed by GitHub
commit f2fbe96c85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 57 additions and 34 deletions

View file

@ -7,6 +7,7 @@ import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler; import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry; import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback; import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback;
import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
@ -26,7 +27,10 @@ import net.minecraft.util.math.Vec3i;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.world.BlockRenderView; import net.minecraft.world.BlockRenderView;
import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.ModBlockEntityTypes;
import org.dimdev.dimdoors.client.CustomSkyProvider; import org.dimdev.dimdoors.client.CustomSkyProvider;
import org.dimdev.dimdoors.client.DetachedRiftBlockEntityRenderer;
import org.dimdev.dimdoors.client.EntranceRiftBlockEntityRenderer;
import org.dimdev.dimdoors.client.LimboSkyProvider; import org.dimdev.dimdoors.client.LimboSkyProvider;
import org.dimdev.dimdoors.entity.ModEntityTypes; import org.dimdev.dimdoors.entity.ModEntityTypes;
import org.dimdev.dimdoors.entity.MonolithEntity; import org.dimdev.dimdoors.entity.MonolithEntity;
@ -54,6 +58,9 @@ public class DimensionalDoorsClientInitializer implements ClientModInitializer {
OpenWorlds.registerSkyRenderer(ModDimensions.LIMBO_TYPE, new LimboSkyProvider()); OpenWorlds.registerSkyRenderer(ModDimensions.LIMBO_TYPE, new LimboSkyProvider());
ClientSidePacketRegistry.INSTANCE.register(DimensionalDoorsInitializer.MONOLITH_PARTICLE_PACKET, MonolithEntity::spawnParticles); ClientSidePacketRegistry.INSTANCE.register(DimensionalDoorsInitializer.MONOLITH_PARTICLE_PACKET, MonolithEntity::spawnParticles);
BlockEntityRendererRegistry.INSTANCE.register(ModBlockEntityTypes.ENTRANCE_RIFT, EntranceRiftBlockEntityRenderer::new);
BlockEntityRendererRegistry.INSTANCE.register(ModBlockEntityTypes.DETACHED_RIFT, DetachedRiftBlockEntityRenderer::new);
} }
private void putCutout(Block block) { private void putCutout(Block block) {

View file

@ -3,6 +3,7 @@ package org.dimdev.dimdoors;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.ModBlockEntityTypes;
import org.dimdev.dimdoors.commands.CommandPocket; import org.dimdev.dimdoors.commands.CommandPocket;
import org.dimdev.dimdoors.commands.CommandSaveSchem; import org.dimdev.dimdoors.commands.CommandSaveSchem;
import org.dimdev.dimdoors.commands.DimTeleportCommand; import org.dimdev.dimdoors.commands.DimTeleportCommand;
@ -29,6 +30,7 @@ public class DimensionalDoorsInitializer implements ModInitializer {
ModEntityTypes.init(); ModEntityTypes.init();
ModBiomes.init(); ModBiomes.init();
ModFeatures.init(); ModFeatures.init();
ModBlockEntityTypes.init();
this.registerCommands(); this.registerCommands();

View file

@ -1,9 +1,26 @@
package org.dimdev.dimdoors.block; package org.dimdev.dimdoors.block;
import net.minecraft.block.Block; import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
public class DimensionalPortalBlock extends Block { // TODO import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
public class DimensionalPortalBlock extends Block implements RiftProvider<EntranceRiftBlockEntity> {
public DimensionalPortalBlock(Settings settings) { public DimensionalPortalBlock(Settings settings) {
super(settings); super(settings);
} }
@Override
public EntranceRiftBlockEntity getRift(World world, BlockPos pos, BlockState state) {
return (EntranceRiftBlockEntity) this.createBlockEntity(world);
}
@Override
public BlockEntity createBlockEntity(BlockView world) {
return new EntranceRiftBlockEntity();
}
} }

View file

@ -3,25 +3,24 @@ package org.dimdev.dimdoors.client;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.*;
import net.minecraft.client.render.Tessellator;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.VertexFormats;
import net.minecraft.client.util.GlAllocationUtils; import net.minecraft.client.util.GlAllocationUtils;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.Util; import net.minecraft.util.Util;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import static com.mojang.blaze3d.platform.GlStateManager.TexCoord.*; import static com.mojang.blaze3d.platform.GlStateManager.TexCoord.*;
import static com.mojang.blaze3d.platform.GlStateManager.enableTexGen; import static com.mojang.blaze3d.platform.GlStateManager.enableTexGen;
@Environment(EnvType.CLIENT)
public final class DimensionalPortalRenderer { // TODO public final class DimensionalPortalRenderer { // TODO
private static final FloatBuffer buffer = GlAllocationUtils.allocateFloatBuffer(16); private static final FloatBuffer BUFFER = GlAllocationUtils.allocateFloatBuffer(16);
private static final Identifier warpPath = new Identifier("dimdoors" + ":textures/other/warp.png"); private static final Identifier WARP_TEX = new Identifier("dimdoors", "textures/other/warp.png");
/** /**
* Renders a dimensional portal, for use in various situations. Code is mostly based * Renders a dimensional portal, for use in various situations. Code is mostly based
@ -37,7 +36,7 @@ public final class DimensionalPortalRenderer { // TODO
* @param height The height of the wall. * @param height The height of the wall.
* @param colors An array containing the color to use on each pass. Its length determines the number of passes to do. * @param colors An array containing the color to use on each pass. Its length determines the number of passes to do.
*/ */
public static void renderDimensionalPortal(VertexConsumer vc, double x, double y, double z, Direction orientation, double width, double height, float[][] colors) { // TODO: Make this work at any angle public static void renderDimensionalPortal(VertexConsumerProvider vc, double x, double y, double z, Direction orientation, double width, double height, float[][] colors) { // TODO: Make this work at any angle
RenderSystem.disableLighting(); RenderSystem.disableLighting();
RenderSystem.disableCull(); RenderSystem.disableCull();
@ -48,7 +47,7 @@ public final class DimensionalPortalRenderer { // TODO
float scale = 0.2625F; float scale = 0.2625F;
float colorMultiplier = 1.0F / (translationScale + .80F); float colorMultiplier = 1.0F / (translationScale + .80F);
MinecraftClient.getInstance().getTextureManager().bindTexture(warpPath); MinecraftClient.getInstance().getTextureManager().bindTexture(WARP_TEX);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
if (pass == 0) { if (pass == 0) {
@ -189,9 +188,9 @@ public final class DimensionalPortalRenderer { // TODO
} }
private static FloatBuffer getBuffer(float f1, float f2, float f3, float f4) { private static FloatBuffer getBuffer(float f1, float f2, float f3, float f4) {
buffer.clear(); BUFFER.clear();
buffer.put(f1).put(f2).put(f3).put(f4); BUFFER.put(f1).put(f2).put(f3).put(f4);
buffer.flip(); BUFFER.flip();
return buffer; return BUFFER;
} }
} }

View file

@ -1,17 +1,18 @@
package org.dimdev.dimdoors.client; package org.dimdev.dimdoors.client;
import com.mojang.blaze3d.systems.RenderSystem; import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.server.world.ServerWorld; import net.minecraft.client.util.math.Vector3f;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class EntranceRiftBlockEntityRenderer extends BlockEntityRenderer<EntranceRiftBlockEntity> { public class EntranceRiftBlockEntityRenderer extends BlockEntityRenderer<EntranceRiftBlockEntity> {
@ -24,23 +25,20 @@ public class EntranceRiftBlockEntityRenderer extends BlockEntityRenderer<Entranc
@Override @Override
public void render(EntranceRiftBlockEntity entrance, float f, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, int j) { public void render(EntranceRiftBlockEntity entrance, float f, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, int j) {
/*Direction orientation = entrance.getOrientation(); Direction orientation = entrance.getOrientation();
Vec3d offset = new Vec3d(orientation.getOpposite().getUnitVector().scale(orientation == Direction.NORTH || orientation == Direction.WEST || orientation == Direction.UP ? entrance.pushIn : entrance.pushIn - 1)); Vector3f vec = orientation.getOpposite().getUnitVector();
vec.scale((float) (orientation == Direction.NORTH || orientation == Direction.WEST || orientation == Direction.UP ? 0.01 : 0.01 - 1));
Vec3d offset = new Vec3d(vec);
DimensionalPortalRenderer.renderDimensionalPortal( DimensionalPortalRenderer.renderDimensionalPortal(
x + offset.x, vertexConsumerProvider,
y + offset.y, entrance.getPos().getX() + offset.x,
z + offset.z, entrance.getPos().getY() + offset.y,
entrance.getPos().getZ() + offset.z,
//entrance.orientation.getHorizontalAngle(), //entrance.orientation.getHorizontalAngle(),
//entrance.orientation.getDirectionVec().getY() * 90, //entrance.orientation.getDirectionVec().getY() * 90,
orientation, orientation,
extendLeft + entrance.extendRight, 16,
extendDown + entrance.extendUp, 16,
entrance.getColors(16));*/ entrance.getColors(16));
/*if (entrance.lockStatus >= 1) {
for (int i = 0; i < 1 + entrance.lockStatus; i++) {
renderKeyHole(entrance, x, y, z, i);
}
}*/
} }
} }