private void onAnvilDebug(IServerPlayer player, int groupId, CmdArgs args) { if (player.CurrentBlockSelection?.Position != null) { BlockEntityAnvil bea = api.World.BlockAccessor.GetBlockEntity(player.CurrentBlockSelection.Position) as BlockEntityAnvil; if (bea == null) { player.SendMessage(groupId, "Not looking at an anvil", EnumChatType.CommandError); return; } player.SendMessage(groupId, bea.PrintDebugText(), EnumChatType.CommandSuccess); } }
private void CheckValidToggleAndNotObstructed() { targetAnvil = Api.World.BlockAccessor.GetBlockEntity(anvilPos) as BlockEntityAnvil; obstructed = false; if (renderer != null) { renderer.Obstructed = false; } mptoggle = Api.World.BlockAccessor.GetBlockEntity(togglePos)?.GetBehavior <BEBehaviorMPToggle>(); if (mptoggle?.ValidHammerBase(Pos) == false) { mptoggle = null; obstructed = true; if (renderer != null) { renderer.Obstructed = true; } return; } BlockPos npos = Pos.AddCopy(0, 1, 0); for (int i = 0; i < 3; i++) { Block block = Api.World.BlockAccessor.GetBlock(npos); Cuboidf[] collboxes = block.GetCollisionBoxes(Api.World.BlockAccessor, npos); if (collboxes != null && collboxes.Length > 0) { obstructed = true; if (renderer != null) { renderer.Obstructed = true; } break; } npos.Add(facing.Normali); } }
public static bool Prefix(ItemWorkItem __instance, ref EnumHelveWorkableMode __result, ref BlockEntityAnvil beAnvil) { bool workable = beAnvil.SelectedRecipe.Output.Attributes?["helvehammerworkable"]?.AsBool() ?? Config.Current.DefaultWorkable; if ((workable || Config.Current.AllWorkable) && beAnvil.OwnMetalTier >= Config.Current.AnvilTier) { __result = EnumHelveWorkableMode.TestSufficientVoxelsWorkable; return(false); } return(true); }