fix holdthis not converting block types, reduce some duplicated code

This commit is contained in:
UnknownShadow200 2018-07-13 10:28:34 +10:00
parent 07166fa30b
commit 4789a22656
6 changed files with 18 additions and 19 deletions

View File

@ -42,7 +42,8 @@ namespace MCGalaxy.Commands.CPE {
Player.Message(p, "Cannot hold physics blocks"); return;
}
p.Send(Packet.HoldThis(Block.ToRaw(block), locked, p.hasExtBlocks));
BlockID raw = p.ConvertBlock(block);
p.Send(Packet.HoldThis(raw, locked, p.hasExtBlocks));
p.Message("Set your held block to {0}.", Block.GetName(p, block));
}

View File

@ -219,7 +219,7 @@ namespace MCGalaxy {
if (block >= Block.ExtendedCount) {
model = "humanoid"; // invalid block ids
} else {
model = pl.level.RawFallback(block).ToString();
model = pl.ConvertBlock(block).ToString();
}
}
pl.Send(Packet.ChangeModel(id, model, pl.hasCP437));

View File

@ -143,9 +143,7 @@ namespace MCGalaxy {
int value = origValue;
if (prop == EnvProp.SidesBlock || prop == EnvProp.EdgeBlock) {
BlockID raw = Block.ToRaw((BlockID)value);
if (raw > pl.MaxRawBlock) raw = pl.level.RawFallback((BlockID)value);
value = raw;
value = pl.ConvertBlock((BlockID)value);
}
if (pl.Supports(CpeExt.EnvMapAspect)) {

View File

@ -265,7 +265,13 @@ namespace MCGalaxy {
NetUtils.WriteU16(y, buffer, 3);
NetUtils.WriteU16(z, buffer, 5);
BlockID raw;
BlockID raw = ConvertBlock(block);
NetUtils.WriteBlock(raw, buffer, 7, hasExtBlocks);
Socket.SendLowPriority(buffer);
}
public BlockID ConvertBlock(BlockID block) {
BlockID raw;
if (block >= Block.Extended) {
raw = Block.ToRaw(block);
} else {
@ -278,11 +284,10 @@ namespace MCGalaxy {
if (!hasBlockDefs && raw < Block.CpeCount) {
BlockDefinition def = level.CustomBlockDefs[raw];
if (def != null) raw = def.FallBack;
}
if (!hasCustomBlocks) raw = Block.ConvertCPE((BlockRaw)raw);
}
NetUtils.WriteBlock(raw, buffer, 7, hasExtBlocks);
Socket.SendLowPriority(buffer);
if (!hasCustomBlocks) raw = Block.ConvertCPE((BlockRaw)raw);
return raw;
}
internal void CloseSocket() {

View File

@ -115,10 +115,8 @@ namespace MCGalaxy {
string lastUrl = "";
public void SendCurrentTextures() {
BlockID side = Block.ToRaw(level.Config.EdgeBlock);
if (side > MaxRawBlock) side = level.RawFallback(level.Config.EdgeBlock);
BlockID edge = Block.ToRaw(level.Config.HorizonBlock);
if (edge > MaxRawBlock) edge = level.RawFallback(level.Config.HorizonBlock);
BlockID side = ConvertBlock(level.Config.EdgeBlock);
BlockID edge = ConvertBlock(level.Config.HorizonBlock);
string url = GetTextureUrl();
if (Supports(CpeExt.EnvMapAspect)) {

View File

@ -379,11 +379,8 @@ namespace MCGalaxy {
if (i == EnvProp.SidesBlock || i == EnvProp.EdgeBlock) {
if (zone != null && zone.Config.GetEnvProp(i) != Block.Invalid) {
value = zone.Config.GetEnvProp(i);
}
BlockID raw = Block.ToRaw((BlockID)value);
if (raw > MaxRawBlock) raw = level.RawFallback((BlockID)value);
value = raw;
}
value = ConvertBlock((BlockID)value);
} else {
if (zone != null && zone.Config.GetEnvProp(i) != -1) {
value = zone.Config.GetEnvProp(i);