コード例 #1
0
ファイル: BEEBaseDevice.cs プロジェクト: wqpvs/advancedblock
        protected virtual void DoDeviceStart()
        {
            if (capacitor >= requiredAmps)
            {
                tickCounter = 0;
                deviceState = enDeviceState.RUNNING;

                if (Api.World.Side == EnumAppSide.Client && animUtil != null)
                {
                    if (!animInit)
                    {
                        float rotY = Block.Shape.rotateY;
                        animUtil.InitializeAnimator("process", new Vec3f(0, rotY, 0));
                        animInit = true;
                    }
                    animUtil.StartAnimation(new AnimationMetaData()
                    {
                        Animation      = "process", Code = "process",
                        AnimationSpeed = 1f, EaseInSpeed = 1, EaseOutSpeed = 1,
                        Weight         = 1, BlendMode = EnumAnimationBlendMode.Add
                    });
                    Api.World.PlaySoundAt(new AssetLocation("sounds/doorslide"), Pos.X, Pos.Y, Pos.Z, null, false, 8, 1);
                }

                //sounds/blocks/doorslide.ogg
                DoDeviceProcessing();
            }
            else
            {
                DoFailedStart();
            }
        }
コード例 #2
0
        protected virtual void DoDeviceStart()
        {
            if (Capacitor >= requiredAmps)
            {
                tickCounter = 0;
                deviceState = enDeviceState.RUNNING;

                //sounds/blocks/doorslide.ogg
                DoDeviceProcessing();
            }
            else
            {
                DoFailedStart();
            }
        }
コード例 #3
0
ファイル: BEEBaseDevice.cs プロジェクト: wqpvs/advancedblock
        //Do whatever needs doing on a successful cycle
        protected virtual void DoDeviceComplete()
        {
            deviceState = enDeviceState.IDLE;
            Block     block       = Api.World.GetBlock(new AssetLocation("game:bowl-raw"));
            ItemStack outputStack = new ItemStack(block);

            Vec3d pos = Pos.ToVec3d();

            pos.Y += 0.5f;
            Vec3d vel = new Vec3d(0, 0.25f, 0);

            Api.World.SpawnItemEntity(outputStack, pos, vel);
            //Api.World.SpawnItemEntity(grindedStack, this.Pos.ToVec3d().Add(0.5 + face.Normalf.X * 0.7, 0.75, 0.5 + face.Normalf.Z * 0.7), new Vec3d(face.Normalf.X * 0.02f, 0, face.Normalf.Z * 0.02f));
            if (Api.World.Side == EnumAppSide.Client && animUtil != null)
            {
                animUtil.StopAnimation("process");
            }
        }
コード例 #4
0
ファイル: BEEBaseDevice.cs プロジェクト: wqpvs/advancedblock
 protected virtual void UsePower()
 {
     if (!isOn)
     {
         return;
     }
     if (DeviceState == enDeviceState.IDLE || DeviceState == enDeviceState.MATERIALHOLD)
     {
         DoDeviceStart();
     }
     else if (deviceState == enDeviceState.WARMUP)
     {
         tickCounter++;
         if (tickCounter == 10)
         {
             tickCounter = 0; deviceState = enDeviceState.IDLE;
         }
     }
     else
     {
         DoDeviceProcessing();
     }
 }
コード例 #5
0
ファイル: BEEBaseDevice.cs プロジェクト: wqpvs/advancedblock
 public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldAccessForResolve)
 {
     base.FromTreeAttributes(tree, worldAccessForResolve);
     tickCounter = tree.GetInt("tickCounter");
     deviceState = (enDeviceState)tree.GetInt("deviceState");
 }
コード例 #6
0
 //Do whatever needs doing on a successful cycle
 protected virtual void DoDeviceComplete()
 {
     deviceState = enDeviceState.IDLE;
 }