Exemplo n.º 1
0
    private void onClickBlurprint(EventContext context)
    {
        BlueprintConfig blueprint = blueprintConfigs[list.selectedIndex];

        (entityBase as Factory).setBlueprint(blueprint);
        Hide();
    }
Exemplo n.º 2
0
    public BlueprintConfig[] GetBlueprintConfig(int slotNum)
    {
        EntityConfig[]    eConfigs = getEntityConfigs();
        BlueprintConfig[] configs  = new BlueprintConfig[eConfigs.Length];

        int num = 0;

        for (int i = 0; i < eConfigs.Length; i++)
        {
            configs[i] = getConfig <BlueprintConfig>("Blueprint/" + eConfigs[i].id);
            if (configs[i] && configs[i].inEntities.Length == slotNum)
            {
                num++;
            }
        }

        BlueprintConfig[] outConfigs = new BlueprintConfig[num];
        int index = 0;

        for (int i = 0; i < eConfigs.Length; i++)
        {
            configs[i] = getConfig <BlueprintConfig>("Blueprint/" + eConfigs[i].id);
            if (configs[i] && configs[i].inEntities.Length == slotNum)
            {
                outConfigs[index] = configs[i];
                index++;
            }
        }

        return(outConfigs);
    }
Exemplo n.º 3
0
    public BlueprintConfig[] GetBlueprintConfig(EntityConfig.TYPE type)
    {
        BlueprintConfig[] configs;
        EntityConfig[]    eConfigs = getEntityConfigs(type);
        configs = new BlueprintConfig[eConfigs.Length];
        for (int i = 0; i < eConfigs.Length; i++)
        {
            configs[i] = getConfig <BlueprintConfig>("Blueprint/" + eConfigs[i].id);
        }

        return(configs);
    }
Exemplo n.º 4
0
    public void produceEntity(BlueprintConfig blueprint, Slot[] inSlots, Slot outSlot)
    {
        for (int i = 0; i < blueprint.inEntities.Length; i++)
        {
            if (!inSlots[i].checkAvailable(blueprint.inEntities[i].id, blueprint.inNums[i]))
            {
                Debug.LogError("in slot is not enough, can't produce");
                return;
            }
        }

        for (int i = 0; i < blueprint.inEntities.Length; i++)
        {
            destory(inSlots[i], blueprint.inNums[i]);
        }

        CreateToSlot(blueprint.outEntity.id, blueprint.outNum, outSlot);
    }
Exemplo n.º 5
0
    void resetProduceBlueprint(BlueprintConfig blueprint)
    {
        this.blueprint = blueprint;
        if (blueprint)
        {
            outSlot.entity = Globals.entityManager.GetEntity(blueprint.outEntity.id);

            for (int i = 0; i < blueprint.inEntities.Length; i++)
            {
                inSlots[i].entity = Globals.entityManager.GetEntity(blueprint.inEntities[i].id);
            }
        }
        else
        {
            outSlot.clear();
            for (int i = 1; i < inSlots.Length; i++)
            {
                inSlots[i].clear();
            }
        }
    }
Exemplo n.º 6
0
    public void setBlueprint(BlueprintConfig blueprint)
    {
        if (this.blueprint == blueprint)
        {
            return;
        }

        this.blueprint = blueprint;

        //TODO 替换蓝图时,工厂内的物品应该放入背包,背包还没做,先直接销毁了
        foreach (Slot slot in inSlots)
        {
            if (slot.checkAvailable())
            {
                Globals.entityManager.destory(slot, slot.num);
            }
        }
        if (outSlot.checkAvailable())
        {
            Globals.entityManager.destory(outSlot, outSlot.num);
        }
    }