Progress on storage monitor rendering
This commit is contained in:
@@ -94,7 +94,7 @@ processResources {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
minecraft 'net.minecraftforge:forge:1.15.1-30.0.39'
|
minecraft 'net.minecraftforge:forge:1.15.1-30.0.41'
|
||||||
//compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.11:api")
|
//compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.11:api")
|
||||||
//compileOnly 'mouse-tweaks:MouseTweaks:2.12:mc1.14.4'
|
//compileOnly 'mouse-tweaks:MouseTweaks:2.12:mc1.14.4'
|
||||||
//runtimeOnly fg.deobf('crafting-tweaks:CraftingTweaks_1.14.4:10.1.3')
|
//runtimeOnly fg.deobf('crafting-tweaks:CraftingTweaks_1.14.4:10.1.3')
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.render.tesr;
|
package com.raoulvdberge.refinedstorage.render.tesr;
|
||||||
|
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
import com.mojang.blaze3d.platform.GlStateManager;
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.block.StorageMonitorBlock;
|
import com.raoulvdberge.refinedstorage.block.StorageMonitorBlock;
|
||||||
@@ -10,46 +8,22 @@ import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
|||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.renderer.Vector3f;
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms;
|
import net.minecraft.client.renderer.model.ItemCameraTransforms;
|
||||||
import net.minecraft.client.renderer.texture.AtlasTexture;
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraftforge.client.ForgeHooksClient;
|
import net.minecraft.util.math.Vec3d;
|
||||||
import org.lwjgl.opengl.GL11;
|
import net.minecraftforge.common.model.TransformationHelper;
|
||||||
|
|
||||||
public class StorageMonitorTileRenderer extends TileEntityRenderer<StorageMonitorTile> {
|
public class StorageMonitorTileRenderer extends TileEntityRenderer<StorageMonitorTile> {
|
||||||
public StorageMonitorTileRenderer(TileEntityRendererDispatcher p_i226006_1_) {
|
public StorageMonitorTileRenderer(TileEntityRendererDispatcher dispatcher) {
|
||||||
super(p_i226006_1_);
|
super(dispatcher);
|
||||||
}
|
|
||||||
/* TODO @Override
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public void render(StorageMonitorTile tile, double x, double y, double z, float partialTicks, int destroyStage) {
|
|
||||||
setLightmapDisabled(true);
|
|
||||||
|
|
||||||
float disX = 0, disXText = 0;
|
|
||||||
float disY = 0.5F, disYText = 0.23F;
|
|
||||||
float disZ = 0, disZText = 0;
|
|
||||||
float spacing = 0.01F;
|
|
||||||
|
|
||||||
float rotX = 0;
|
|
||||||
float rotY = 0;
|
|
||||||
float rotZ = 0;
|
|
||||||
|
|
||||||
String amount = API.instance().getQuantityFormatter().formatWithUnits(tile.getAmount());
|
|
||||||
|
|
||||||
// Very bad, but I don't know how to translate a 2D font width to a 3D font width...
|
|
||||||
float textWidth = 0;
|
|
||||||
for (int i = 0; i < amount.length(); ++i) {
|
|
||||||
char c = amount.charAt(i);
|
|
||||||
if (c == '.') {
|
|
||||||
textWidth += 0.005F;
|
|
||||||
} else {
|
|
||||||
textWidth += 0.026F;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void func_225616_a_(StorageMonitorTile tile, float partialTicks, MatrixStack matrixStack, IRenderTypeBuffer renderTypeBuffer, int i, int i1) {
|
||||||
Direction direction = Direction.NORTH;
|
Direction direction = Direction.NORTH;
|
||||||
|
|
||||||
BlockState state = tile.getWorld().getBlockState(tile.getPos());
|
BlockState state = tile.getWorld().getBlockState(tile.getPos());
|
||||||
@@ -57,96 +31,42 @@ public class StorageMonitorTileRenderer extends TileEntityRenderer<StorageMonito
|
|||||||
direction = state.get(RSBlocks.STORAGE_MONITOR.getDirection().getProperty());
|
direction = state.get(RSBlocks.STORAGE_MONITOR.getDirection().getProperty());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (direction == Direction.NORTH) {
|
String amount = API.instance().getQuantityFormatter().formatWithUnits(tile.getAmount());
|
||||||
disX = 0.5F;
|
|
||||||
disXText = disX + textWidth;
|
|
||||||
|
|
||||||
disZ = -spacing;
|
|
||||||
disZText = disZ - spacing;
|
|
||||||
|
|
||||||
rotZ = 1F;
|
|
||||||
} else if (direction == Direction.WEST) {
|
|
||||||
disX = -spacing;
|
|
||||||
disXText = disX - spacing;
|
|
||||||
|
|
||||||
disZ = 0.5F;
|
|
||||||
disZText = disZ - textWidth;
|
|
||||||
|
|
||||||
rotZ = 1F;
|
|
||||||
rotX = 1F;
|
|
||||||
} else if (direction == Direction.SOUTH) {
|
|
||||||
disX = 0.5F;
|
|
||||||
disXText = disX - textWidth;
|
|
||||||
|
|
||||||
disZ = 1F + spacing;
|
|
||||||
disZText = disZ + spacing;
|
|
||||||
|
|
||||||
rotX = 1F;
|
|
||||||
} else if (direction == Direction.EAST) {
|
|
||||||
disX = 1F + spacing;
|
|
||||||
disXText = disX + spacing;
|
|
||||||
|
|
||||||
disZ = 0.5F;
|
|
||||||
disZText = disZ + textWidth;
|
|
||||||
|
|
||||||
rotZ = 1F;
|
|
||||||
rotX = -1F;
|
|
||||||
}
|
|
||||||
|
|
||||||
RenderSystem.pushMatrix();
|
|
||||||
RenderSystem.translated(x + disX, y + disY, z + disZ);
|
|
||||||
RenderSystem.rotatef(180F, rotX, rotY, rotZ);
|
|
||||||
RenderSystem.color4f(1F, 1F, 1F, 1F);
|
|
||||||
RenderSystem.depthMask(false);
|
|
||||||
RenderSystem.enableBlend();
|
|
||||||
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
|
|
||||||
RenderSystem.blendFunc(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
|
||||||
RenderSystem.depthMask(true);
|
|
||||||
RenderSystem.scalef(0.4F, -0.4F, -0.015F);
|
|
||||||
Minecraft.getInstance().getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE);
|
|
||||||
Minecraft.getInstance().getTextureManager().getTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE).setBlurMipmap(false, false);
|
|
||||||
RenderSystem.enableRescaleNormal();
|
|
||||||
RenderSystem.enableAlphaTest();
|
|
||||||
RenderSystem.alphaFunc(GL11.GL_GREATER, 0.1F);
|
|
||||||
RenderSystem.enableBlend();
|
|
||||||
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
|
|
||||||
RenderSystem.color4f(1F, 1F, 1F, 1F);
|
|
||||||
|
|
||||||
if (tile.getItemStack() != null) {
|
if (tile.getItemStack() != null) {
|
||||||
IBakedModel bakedModel = Minecraft.getInstance().getItemRenderer().getItemModelWithOverrides(tile.getItemStack(), null, Minecraft.getInstance().player);
|
Vec3d offset = getOffset(direction);
|
||||||
bakedModel = ForgeHooksClient.handleCameraTransforms(bakedModel, ItemCameraTransforms.TransformType.GUI, false);
|
|
||||||
Minecraft.getInstance().getItemRenderer().renderItem(tile.getItemStack(), bakedModel);
|
matrixStack.func_227860_a_();
|
||||||
|
|
||||||
|
double r = Math.PI * (360 - direction.getOpposite().getHorizontalIndex() * 90) / 180d;
|
||||||
|
|
||||||
|
matrixStack.func_227861_a_(0.5D, 0.5D, 0.5D);
|
||||||
|
matrixStack.func_227861_a_(offset.getX(), offset.getY(), offset.getZ());
|
||||||
|
matrixStack.func_227863_a_(TransformationHelper.quatFromXYZ(new Vector3f(0, (float) r, 0), false));
|
||||||
|
|
||||||
|
matrixStack.func_227860_a_();
|
||||||
|
matrixStack.func_227862_a_(0.5F, 0.5F, 0.5F);
|
||||||
|
Minecraft.getInstance().getItemRenderer().func_229110_a_(tile.getItemStack(), ItemCameraTransforms.TransformType.FIXED, 0x00F000F0, OverlayTexture.field_229196_a_, matrixStack, renderTypeBuffer);
|
||||||
|
matrixStack.func_227865_b_();
|
||||||
|
|
||||||
|
Minecraft.getInstance().fontRenderer.func_228079_a_(
|
||||||
|
"Hello",
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
-1,
|
||||||
|
false,
|
||||||
|
matrixStack.func_227866_c_().func_227870_a_(),
|
||||||
|
renderTypeBuffer,
|
||||||
|
false,
|
||||||
|
0,
|
||||||
|
15728880
|
||||||
|
);
|
||||||
|
|
||||||
|
matrixStack.func_227865_b_();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderSystem.disableAlphaTest();
|
public Vec3d getOffset(Direction direction) {
|
||||||
RenderSystem.disableRescaleNormal();
|
return new Vec3d(((float) direction.getXOffset() * 0.4F), 0, ((float) direction.getZOffset() * 0.4F));
|
||||||
RenderSystem.disableLighting();
|
|
||||||
Minecraft.getInstance().getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE);
|
|
||||||
Minecraft.getInstance().getTextureManager().func_229267_b_(AtlasTexture.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap();
|
|
||||||
RenderSystem.disableBlend();
|
|
||||||
RenderSystem.color4f(1F, 1F, 1F, 1F);
|
|
||||||
|
|
||||||
RenderSystem.popMatrix();
|
|
||||||
|
|
||||||
RenderSystem.pushMatrix();
|
|
||||||
|
|
||||||
RenderSystem.translated(x + disXText, y + disYText, z + disZText);
|
|
||||||
RenderSystem.rotatef(180F, rotX, rotY, rotZ);
|
|
||||||
float size = 0.00450F;
|
|
||||||
float factor = 2.0f;
|
|
||||||
RenderSystem.scaled(size * factor, size * factor, size);
|
|
||||||
|
|
||||||
if (tile.getItemStack() != null) {
|
|
||||||
Minecraft.getInstance().fontRenderer.drawString(amount, 0, 0, 0xFFFFFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
RenderSystem.popMatrix();
|
|
||||||
|
|
||||||
this.setLightmapDisabled(false);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void func_225616_a_(StorageMonitorTile storageMonitorTile, float v, MatrixStack matrixStack, IRenderTypeBuffer iRenderTypeBuffer, int i, int i1) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.render.tesr.StorageMonitorTileRenderer;
|
|||||||
import com.raoulvdberge.refinedstorage.screen.*;
|
import com.raoulvdberge.refinedstorage.screen.*;
|
||||||
import com.raoulvdberge.refinedstorage.screen.factory.CrafterManagerScreenFactory;
|
import com.raoulvdberge.refinedstorage.screen.factory.CrafterManagerScreenFactory;
|
||||||
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
|
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
|
||||||
import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.ScreenManager;
|
import net.minecraft.client.gui.ScreenManager;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
@@ -242,7 +241,7 @@ public class ClientSetup {
|
|||||||
RenderTypeLookup.setRenderLayer(RSBlocks.CONSTRUCTOR, cutout);
|
RenderTypeLookup.setRenderLayer(RSBlocks.CONSTRUCTOR, cutout);
|
||||||
RenderTypeLookup.setRenderLayer(RSBlocks.DESTRUCTOR, cutout);
|
RenderTypeLookup.setRenderLayer(RSBlocks.DESTRUCTOR, cutout);
|
||||||
|
|
||||||
// TODO ClientRegistry.bindTileEntitySpecialRenderer(StorageMonitorTile.class, new StorageMonitorTileRenderer());
|
ClientRegistry.bindTileEntityRenderer(RSTiles.STORAGE_MONITOR, StorageMonitorTileRenderer::new);
|
||||||
|
|
||||||
e.getMinecraftSupplier().get().getItemColors().register(new PatternItemColor(), RSItems.PATTERN);
|
e.getMinecraftSupplier().get().getItemColors().register(new PatternItemColor(), RSItems.PATTERN);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user