Beispiel #1
0
    /**
     * This happens when the block is placed in the world.
     */

    public override void PlaceBlock(WorldBase _world, BlockPlacement.Result _result, EntityAlive _ea)
    {
        Block block = Block.list[_result.blockValue.type];

        if (block.shape.IsTerrain())
        {
            _world.SetBlockRPC(_result.clrIdx, _result.blockPos, _result.blockValue, this.Density);
        }
        else if (!block.IsTerrainDecoration)
        {
            _world.SetBlockRPC(_result.clrIdx, _result.blockPos, _result.blockValue, MarchingCubes.DensityAir);
        }
        else
        {
            _world.SetBlockRPC(_result.clrIdx, _result.blockPos, _result.blockValue);
        }

        TileEntityBlockTransformer tileEntityBlockTransformer = _world.GetTileEntity(_result.clrIdx, _result.blockPos) as TileEntityBlockTransformer;

        if (tileEntityBlockTransformer == null)
        {
            Log.Warning("Failed to create tile entity");
            return;
        }
        if (_ea != null && _ea.entityType == EntityType.Player)
        {
            tileEntityBlockTransformer.bPlayerStorage   = true;
            tileEntityBlockTransformer.worldTimeTouched = _world.GetWorldTime();
            tileEntityBlockTransformer.SetEmpty();
        }
        Log.Out("Created successfullly.");
    }
    public override void PlaceBlock(WorldBase _world, BlockPlacement.Result _result, EntityAlive _ea)
    {
        base.PlaceBlock(_world, _result, _ea);

        TileEntityPoweredWorkstationSDX tileEntityWorkstation = (TileEntityPoweredWorkstationSDX)_world.GetTileEntity(_result.clrIdx, _result.blockPos);

        if (tileEntityWorkstation != null)
        {
            tileEntityWorkstation.IsPlayerPlaced = true;
        }
    }
Beispiel #3
0
        /**
         * Will be ran when this method is executedm
         **/

        static bool Prefix(EntityAlive _ea, BlockPlacement.Result _result)
        {
            Block block = Block.list[_result.blockValue.type];

            if (block.CanPickup)
            {
                return(true);
            }

            EntityPlayerLocal player            = _ea as EntityPlayerLocal;
            ProgressionValue  masterProgression = player.Progression.GetProgressionValue("LModMaster");     //set in progression.xml
            ProgressionValue  perkProgression   = player.Progression.GetProgressionValue("LModPlaceBlock"); //set in progression.xml

            if (masterProgression == null || perkProgression == null || perkProgression.Level == 0)
            {
                return(true);
            }

            float multiplier = 1 + ((masterProgression.Level / 10) + ((Math.Max(1, perkProgression.Level) * 2) / 10));

            player.Progression.AddLevelExp(Mathf.FloorToInt(LMod_Block_PlaceBlock.expAmount * multiplier));

            return(true);
        }
Beispiel #4
0
 public override void OnBlockPlaceBefore(WorldBase _world, ref BlockPlacement.Result _bpResult, EntityAlive _ea, Random _rnd)
 {
     DisplayChatAreaText("Gonna put ON water");
     // save the current block type (water or watermoving)
     base.OnBlockPlaceBefore(_world, ref _bpResult, _ea, _rnd);
 }