Ejemplo n.º 1
0
        private static void LoadGliders(JObject rootObj)
        {
            JToken jtoken1;

            if (!rootObj.TryGetValue("transports", out jtoken1))
            {
                return;
            }
            if (jtoken1.Type != JTokenType.Array)
            {
                Log.WriteWarning("Didn't load gliders as transports wasn't an array");
            }
            else
            {
                JArray jarray = (JArray)jtoken1;
                int    count  = jarray.Count;
                for (int index = 0; index < count; ++index)
                {
                    JToken jtoken2 = jarray[index];
                    if (jtoken2.Type == JTokenType.Object)
                    {
                        JObject jobject = (JObject)jtoken2;
                        if (jobject.TryGetValue("type", out jtoken2) && jtoken2.Type == JTokenType.String)
                        {
                            if (!(jtoken2.Value <string>() != "fastglider"))
                            {
                                try
                                {
                                    Vector3    spawnPosition = ReadVector3((JObject)jobject["position"]);
                                    Quaternion rotation      = Quaternion.Euler(ReadVector3((JObject)jobject["rotation"]));
                                    MeshedVehicleDescription vehicleDescription = FastGlider.CreateVehicleDescription(MeshedObjectID.GetNew());
                                    Players.Player           player             = (Players.Player)null;
                                    JToken jtoken3;
                                    if (jobject.TryGetValue("player", out jtoken3) && jtoken3.Type == JTokenType.String)
                                    {
                                        player = Players.GetPlayer(NetworkID.Parse((string)jtoken3));
                                        MeshedObjectManager.Attach(player, vehicleDescription);
                                    }
                                    FastGlider.CreateGlider(spawnPosition, rotation, vehicleDescription, player);
                                }
                                catch (Exception ex)
                                {
                                    Log.WriteException("Exception loading gliders:", ex);
                                }
                            }
                        }
                    }
                }
            }

            Vector3 ReadVector3(JObject obj)
            {
                return(new Vector3(obj.Value <float>((object)"x"), obj.Value <float>((object)"y"), obj.Value <float>((object)"z")));
            }
        }
Ejemplo n.º 2
0
 private static void OnClicked(Players.Player sender, PlayerClickedData data)
 {
     if (data.ConsumedType != PlayerClickedData.EConsumedType.Not || data.IsHoldingButton || (data.ClickType != PlayerClickedData.EClickType.Right || data.OnBuildCooldown) || (data.HitType != PlayerClickedData.EHitType.Block || (int)data.TypeSelected != (int)ItemTypes.GetType(settings.ItemTypeName).ItemIndex || !sender.Inventory.TryRemove(data.TypeSelected, 1, -1, true)))
     {
         return;
     }
     data.ConsumedType = PlayerClickedData.EConsumedType.UsedAsTool;
     FastGlider.CreateGlider(data.GetExactHitPositionWorld() + settings.SpawnOffset, Quaternion.identity, FastGlider.CreateVehicleDescription(MeshedObjectID.GetNew()), (Players.Player)null);
 }