private void UpdateMesh(BuildingBlueprint plannedBlueprint)
    {
        if (!this.filter)
        {
            return;
        }
        if (!this.meshRenderer)
        {
            return;
        }
        GameObject gObj = PrefabLoader.GetPrefab <GameObject>(plannedBlueprint.PrefabPath);

        if (gObj == null)
        {
            logger.Log("Unable to load prefab " + plannedBlueprint.PrefabPath, LogLevel.Warning);
            return;
        }


        MeshFilter filter = Helpers.GetComponent <MeshFilter>(gObj, logger);

        if (!filter)
        {
            return;
        }
        this.filter.mesh = filter.sharedMesh;

        MeshRenderer renderer = Helpers.GetComponent <MeshRenderer>(gObj, logger);

        if (!renderer)
        {
            return;
        }
        this.meshRenderer.material = renderer.sharedMaterial;
    }
    public static BlockBuildingSite InstantiateNew(Vector3Int position, Block blockToBuild, Type itemRequired)
    {
        GameObject prefabObj = PrefabLoader.GetPrefab <GameObject>(prefabName);
        GameObject obj       = Instantiate(prefabObj) as GameObject;

        if (!obj)
        {
            throw new System.Exception("Could not instantiate prefab " + prefabName);
        }
        GridActor actor = obj.GetComponent <GridActor>();

        if (!actor)
        {
            throw new System.Exception("No GridActor on prefab " + prefabName);
        }
        actor.Move(position);
        BlockBuildingSite bbs = obj.GetComponent <BlockBuildingSite>();

        if (!bbs)
        {
            throw new System.Exception("No BlockBuildingSite on prefab " + prefabName);
        }
        bbs.data.targetBlock  = blockToBuild;
        bbs.data.itemRequired = itemRequired;
        return(bbs);
    }
Example #3
0
    public static DorfComponent InstantiateDorf(Vector3Int spawnPos)
    {
        GameObject prefabObj = PrefabLoader.GetPrefab <GameObject>(prefabName);
        GameObject obj       = Instantiate(prefabObj) as GameObject;

        obj.name = "Dorf_" + obj.GetInstanceID().ToString();
        if (!obj)
        {
            throw new System.Exception("Could not instantiate prefab " + prefabName);
        }
        DorfComponent dorf = obj.GetComponent <DorfComponent>();

        if (!dorf)
        {
            throw new System.Exception("No DorfController Component on " + prefabName);
        }
        dorf.gridActor = dorf.GetComponent <GridActor>();
        if (!dorf.gridActor)
        {
            throw new System.Exception("No GridActor on prefab " + prefabName);
        }
        dorf.gridActor.Move(spawnPos);
        dorf.logger = new LilLogger(obj.name);
        return(dorf);
    }
    public static BuildingSite InstantiateNew(BuildingBlueprint blueprint)
    {
        GameObject   prefab = PrefabLoader.GetPrefab <GameObject>(prefabPath);
        GameObject   gObj   = Instantiate(prefab) as GameObject;
        BuildingSite site   = gObj.GetComponent <BuildingSite>();

        site.data.blueprint = blueprint;
        return(site);
    }
 void Start()
 {
     logger           = new LilLogger(typeof(UnbuiltBuildingGhoster).ToString());
     observer         = new SimpleObserver <PlayerUpdateEvent>(PlayerComponent.Instance, OnPlayerSettingsUpdated);
     filter           = GetComponent <MeshFilter>();
     meshRenderer     = GetComponent <MeshRenderer>();
     seeThroughShader = PrefabLoader.GetPrefab <Shader>("Shaders/SeeThroughShader");
     if (seeThroughShader == null)
     {
         logger.Log("Unable to load Shaders/SeeThroughShader", LogLevel.Warning);
     }
 }
    public static MapGenerationProgress InstantiateNew(IMapGenerator newGenerator)
    {
        GameObject prefabObj = PrefabLoader.GetPrefab <GameObject>(prefabName);
        GameObject obj       = Instantiate(prefabObj) as GameObject;

        if (!obj)
        {
            throw new System.Exception("Could not instantiate prefab " + prefabName);
        }
        MapGenerationProgress disp = obj.GetComponent <MapGenerationProgress>();

        if (!disp)
        {
            throw new System.Exception("No MapGenerationProgress Component on " + prefabName);
        }
        disp.generator = newGenerator;
        return(disp);
    }
    public static void RequestLoad()
    {
        DestroyAllGameobjects();
        if (!File.Exists(savePath))
        {
            Debug.Log("There's no save to load");
            return;
        }
        BinaryFormatter bf   = CreateBinaryFormatter();
        FileStream      file = File.Open(savePath, FileMode.Open);
        List <SaveLoadComponent.GameobjectSaveData> saves = bf.Deserialize(file) as List <SaveLoadComponent.GameobjectSaveData>;

        Debug.Log("Size is " + saves.Count);
        foreach (var save in saves)
        {
            try
            {
                string     path = "Prefabs/" + save.prefabPath;
                GameObject obj  = PrefabLoader.GetPrefab <GameObject>(path);
                if (obj == null)
                {
                    throw new Exception("Could not load prefab " + path);
                }
                SaveLoadComponent comp = GameObject.Instantiate(obj).GetComponent <SaveLoadComponent>();
                if (comp == null)
                {
                    throw new Exception("No SaveLoadComponent on gameobject " + obj.name);
                }
                comp.Load(save);
            }
            catch (Exception e)
            {
                Debug.LogError("Error when loading: " + e.ToString());
            }
        }

        file.Close();
    }
    void Start()
    {
        inventory = Helpers.GetComponent <InventoryComponent>(gameObject, logger);
        if (inventory)
        {
            inventoryObserver = new SimpleObserver <InventoryUpdateEvent>(inventory, OnInventoryUpdated);
        }
        actor = Helpers.GetComponent <GridActor>(gameObject, logger);
        if (actor)
        {
            actor.Move(data.blueprint.Location);
            transform.position = actor.Position;
        }
        if (data.blueprint != null)
        {
            blueprintPrefab = PrefabLoader.GetPrefab <GameObject>(data.blueprint.PrefabPath);
            SetupMesh();

            SetupGridActor();

            SetupRequests();
        }
    }
        public static DroppedItemComponent InstantiateNew(Vector3Int position)
        {
            GameObject prefabObj = PrefabLoader.GetPrefab <GameObject>(prefabName);
            GameObject obj       = Instantiate(prefabObj) as GameObject;

            if (!obj)
            {
                throw new System.Exception("Could not instantiate prefab " + prefabName);
            }
            GridActor gridActor = obj.GetComponent <GridActor>();

            if (!gridActor)
            {
                throw new System.Exception("No GridActor Component on " + prefabName);
            }
            gridActor.Move(position);
            DroppedItemComponent comp = obj.GetComponent <DroppedItemComponent>();

            if (!comp)
            {
                throw new System.Exception("No ItemContainerComponent Component on " + prefabName);
            }
            return(comp);
        }
Example #10
0
    // INIT

    private void Initialize()
    {
        heart_parent_rect = heart_parent.gameObject.GetComponent <RectTransform>();

        heart_prefab = PrefabLoader.GetPrefab("Level/Heart");
    }