public void OnPlayerBulletBodyEntered(AsteroidObject area)
 {
     if (area.IsInGroup("asteroids"))
     {
         QueueFree();
         area.ExplodeItSelf();
     }
 }
Beispiel #2
0
 public ObjectData(AsteroidObject obj, int id)
 {
     model_id        = id;
     name            = obj.name;
     script          = AssetDatabase.GetAssetPath(obj.python_script);
     script          = script.Substring(19, script.Length - 22);
     obj_class       = obj.python_class;
     physics_options = new PhysicsOptionsData(obj);
 }
Beispiel #3
0
 public PhysicsOptionsData(AsteroidObject obj)
 {
     name     = obj.material.material_name;
     position = new VectorData(obj.gameObject.transform.position);
     rotation = new VectorData(obj.gameObject.transform.rotation.eulerAngles);
     scale    = new VectorData(obj.gameObject.transform.lossyScale);
     velocity = new VectorData(obj.velocity);
     rigid    = true;
     mass     = obj.mass;
 }
    private void SetAsteroidToSpawnPosition(int positionIndex)
    {
        Vector2 tempStartPosition = ((Position2D)GetNode("ObstacleSpawnPositions/" + positionIndex.ToString())).GetPosition();
        float   aimToPosition     = (float)this.globals.aimToShipRotation[positionIndex - 1];

        AsteroidObject ast = (AsteroidObject)asteroids.Instance();

        asteroidPool.AddChild(ast);
        ast.Position = tempStartPosition;
        ast.Rotation = 0;
        ast.SetLinearVelocity(new Vector2(this.globals.asteroidInitialVelocity[positionIndex - 1], 0).Rotated(aimToPosition));
    }
Beispiel #5
0
    public AsteroidData(Buffer[] input_buffers, AsteroidMaterial[] input_materials,
                        AsteroidObjectList[] input_object_lists, AsteroidObject action_controller, AsteroidObject score_keeper,
                        int action_dim, Camera cam, Light[] lights, AsteroidConstraint[] constraints)
    {
        //Create buffers
        List <BufferData> bufferList = new List <BufferData>();

        foreach (Buffer buf in input_buffers)
        {
            bufferList.Add(new BufferData(buf));
        }
        buffers = bufferList.ToArray();

        //Materials
        List <MatieralData> matList = new List <MatieralData>();

        foreach (AsteroidMaterial mat in input_materials)
        {
            matList.Add(new MatieralData(mat));
        }
        materials = matList.ToArray();

        //Set up special objects
        SelectedObjectData sk = new SelectedObjectData("", 0);
        SelectedObjectData ac = new SelectedObjectData("", 0);

        //Create object list
        List <ModelData>      modelList          = new List <ModelData>();
        List <ObjectData>     objectList         = new List <ObjectData>();
        List <AsteroidObject> asteroidObjectList = new List <AsteroidObject>();
        List <ObjectListData> objListList        = new List <ObjectListData>();

        foreach (AsteroidObjectList asteroid_object_list in input_object_lists)
        {
            //Create objects
            AsteroidObject[]          asteroid_objects = asteroid_object_list.GetComponentsInChildren <AsteroidObject>();
            List <SelectedObjectData> selected_objects = new List <SelectedObjectData>();

            //Encode each object, each model, and also create a reference to it
            foreach (AsteroidObject obj in asteroid_objects)
            {
                int obj_id = objectList.Count;
                objectList.Add(new ObjectData(obj, obj_id));
                asteroidObjectList.Add(obj);
                modelList.Add(new ModelData(obj.gameObject));
                selected_objects.Add(new SelectedObjectData(obj.object_name, obj_id));

                if (obj == action_controller)
                {
                    ac = new SelectedObjectData(obj.object_name, obj_id);
                }
                if (obj == score_keeper)
                {
                    sk = new SelectedObjectData(obj.object_name, obj_id);
                }
            }
            SelectedObjectData[] selected_objects_final = selected_objects.ToArray();

            objListList.Add(new ObjectListData(asteroid_object_list, selected_objects_final));
        }
        object_lists = objListList.ToArray();
        models       = modelList.ToArray();
        objects      = objectList.ToArray();

        //Create lights
        List <LightData> lightList = new List <LightData>();

        foreach (Light light in lights)
        {
            lightList.Add(new LightData(light));
        }
        light_data = lightList.ToArray();

        //Create constraints
        List <ConstraintData> constraintList = new List <ConstraintData>();

        foreach (AsteroidConstraint constraint in constraints)
        {
            constraintList.Add(new ConstraintData(constraint, asteroidObjectList));
        }
        constraint_data = constraintList.ToArray();

        //Finally, do the config
        env_config = new EnvData(action_dim, sk, ac, cam);
    }