mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-22 12:05:51 -04:00
Now /img accounts for whether a custom block is fullbright
This commit is contained in:
parent
5de6a59c3d
commit
d1fdfdd4e4
@ -22,7 +22,13 @@ namespace MCGalaxy {
|
||||
public sealed partial class Block {
|
||||
|
||||
public static bool IsPhysicsId(byte block) { return block >= CpeCount && block != custom_block; }
|
||||
|
||||
|
||||
public static void Unpack(byte raw, out byte block, out byte extBlock) {
|
||||
block = raw; extBlock = 0;
|
||||
if (raw < Block.CpeCount) return;
|
||||
extBlock = raw; block = custom_block;
|
||||
}
|
||||
|
||||
public static bool Walkthrough(byte block) {
|
||||
return block == air || block == shrub || block == Block.snow
|
||||
|| block == fire || block == rope
|
||||
|
@ -159,8 +159,8 @@ namespace MCGalaxy.Commands.Building {
|
||||
}
|
||||
|
||||
static string FormatEntry(PaletteEntry e, Level lvl) {
|
||||
byte block = e.Block, extBlock = 0;
|
||||
if (block >= Block.CpeCount) { extBlock = block; block = Block.CpeCount; }
|
||||
byte block, extBlock;
|
||||
Block.Unpack(e.Block, out block, out extBlock);
|
||||
return lvl.BlockName(block, extBlock) + " - " + Utils.Hex(e.R, e.G, e.B);
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ namespace MCGalaxy.Drawing.Ops {
|
||||
IPaletteMatcher selector;
|
||||
|
||||
public override void Perform(Vec3S32[] marks, Brush brush, Action<DrawOpBlock> output) {
|
||||
CalcState(Direction);
|
||||
CalcState(Direction);
|
||||
selector = new RgbPaletteMatcher();
|
||||
CalcLayerColors();
|
||||
|
||||
@ -54,13 +54,13 @@ namespace MCGalaxy.Drawing.Ops {
|
||||
if (DualLayer) {
|
||||
ushort y = (ushort)(Origin.Y + Source.Height);
|
||||
for (int i = 0; i < Source.Width; i++) {
|
||||
ushort x = (ushort)(Origin.X + dx.X * i);
|
||||
ushort x = (ushort)(Origin.X + dx.X * i);
|
||||
ushort z = (ushort)(Origin.Z + dx.Z * i);
|
||||
output(Place(x, y, z, Block.rock, 0));
|
||||
|
||||
x = (ushort)(x + adj.X); z = (ushort)(z + adj.Z);
|
||||
output(Place(x, y, z, Block.rock, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Source.Dispose();
|
||||
@ -85,8 +85,17 @@ namespace MCGalaxy.Drawing.Ops {
|
||||
|
||||
for (int i = 0; i < Palette.Entries.Length; i++) {
|
||||
PaletteEntry entry = Palette.Entries[i];
|
||||
front[i] = Multiply(entry, sun);
|
||||
back[i] = Multiply(entry, dark);
|
||||
byte block, extBlock;
|
||||
Block.Unpack(entry.Block, out block, out extBlock);
|
||||
BlockDefinition def = Level.GetBlockDef(block, extBlock);
|
||||
|
||||
if (def != null && def.FullBright) {
|
||||
front[i] = Multiply(entry, Colors.ParseHex("FFFFFF"));
|
||||
back[i] = Multiply(entry, Colors.ParseHex("FFFFFF"));
|
||||
} else {
|
||||
front[i] = Multiply(entry, sun);
|
||||
back[i] = Multiply(entry, dark);
|
||||
}
|
||||
}
|
||||
selector.SetPalette(front, back);
|
||||
}
|
||||
|
@ -111,11 +111,10 @@ namespace MCGalaxy {
|
||||
model = sep == -1 ? model : model.Substring(0, sep);
|
||||
|
||||
AABB baseBB;
|
||||
byte block;
|
||||
if (byte.TryParse(model, out block)) {
|
||||
byte extBlock = 0;
|
||||
// For model, not a physics blocks means custom block
|
||||
if (block >= Block.CpeCount) { extBlock = block; block = Block.custom_block; }
|
||||
byte raw;
|
||||
if (byte.TryParse(model, out raw)) {
|
||||
byte block, extBlock;
|
||||
Block.Unpack(raw, out block, out extBlock);
|
||||
|
||||
baseBB = Block.BlockAABB(block, extBlock, lvl);
|
||||
baseBB = baseBB.Offset(-16, 0, -16); // centre around [-16, 16] instead of [0, 32]
|
||||
|
Loading…
x
Reference in New Issue
Block a user