Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }