Storage unit text display, QOL withdraw by attacking, misc sync fixes
This commit is contained in:
parent
75e31a5d4f
commit
61345c0fa4
3 changed files with 118 additions and 10 deletions
|
@ -24,19 +24,34 @@
|
|||
|
||||
package techreborn.client.render.entitys;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.SignBlock;
|
||||
import net.minecraft.block.WallSignBlock;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.render.OverlayTexture;
|
||||
import net.minecraft.client.render.VertexConsumer;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.WorldRenderer;
|
||||
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
|
||||
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
|
||||
import net.minecraft.client.render.block.entity.SignBlockEntityRenderer;
|
||||
import net.minecraft.client.render.model.json.ModelTransformation;
|
||||
import net.minecraft.client.texture.NativeImage;
|
||||
import net.minecraft.client.util.SpriteIdentifier;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.client.util.math.Vector3f;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.StringRenderable;
|
||||
import net.minecraft.text.Style;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import techreborn.blockentity.storage.item.StorageUnitBaseBlockEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static net.minecraft.client.render.block.entity.SignBlockEntityRenderer.getModelTexture;
|
||||
|
||||
/**
|
||||
* Created by drcrazy on 07-Jan-20 for TechReborn-1.15.
|
||||
*/
|
||||
|
@ -54,6 +69,8 @@ public class StorageUnitRenderer extends BlockEntityRenderer<StorageUnitBaseBloc
|
|||
if (stack.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Item rendering
|
||||
matrices.push();
|
||||
Direction direction = storage.getFacing();
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion((direction.getHorizontal() - 2) * 90F));
|
||||
|
@ -73,5 +90,45 @@ public class StorageUnitRenderer extends BlockEntityRenderer<StorageUnitBaseBloc
|
|||
int lightAbove = WorldRenderer.getLightmapCoordinates(storage.getWorld(), storage.getPos().offset(storage.getFacing()));
|
||||
MinecraftClient.getInstance().getItemRenderer().renderItem(stack, ModelTransformation.Mode.FIXED, lightAbove, OverlayTexture.DEFAULT_UV, matrices, vertexConsumers);
|
||||
matrices.pop();
|
||||
|
||||
// Text rendering
|
||||
matrices.push();
|
||||
TextRenderer textRenderer = this.dispatcher.getTextRenderer();
|
||||
|
||||
|
||||
switch (storage.getFacing()){
|
||||
case NORTH:
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(storage.getFacing().getOpposite().asRotation()));
|
||||
matrices.translate(0.5f,0.5,-0.001f);
|
||||
break;
|
||||
case SOUTH:
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(storage.getFacing().getOpposite().asRotation()));
|
||||
matrices.translate(-0.5f,0.5,-1.001f);
|
||||
break;
|
||||
case EAST:
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(storage.getFacing().asRotation()));
|
||||
matrices.translate(0.5f,0.5,-1.001f);
|
||||
break;
|
||||
case WEST:
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(storage.getFacing().asRotation()));
|
||||
matrices.translate(-0.5f,0.5,-0.001f);
|
||||
break;
|
||||
|
||||
}
|
||||
matrices.scale(-0.01f, -0.01F, -0.01f);
|
||||
|
||||
float xPosition;
|
||||
|
||||
// Render item count
|
||||
String count = String.valueOf(storage.storedAmount);
|
||||
xPosition = (float)(-textRenderer.getWidth(count) / 2);
|
||||
textRenderer.draw(count, xPosition, -4f + 40, 0, false, matrices.peek().getModel(), vertexConsumers, false, 0, light);
|
||||
|
||||
// Render name
|
||||
String item = stack.getName().asTruncatedString(18);
|
||||
xPosition = (float)(-textRenderer.getWidth(item) / 2);
|
||||
textRenderer.draw(item, xPosition, -4f - 40, 0, false, matrices.peek().getModel(), vertexConsumers, false, 0, light);
|
||||
|
||||
matrices.pop();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue