private void onClickBlurprint(EventContext context) { BlueprintConfig blueprint = blueprintConfigs[list.selectedIndex]; (entityBase as Factory).setBlueprint(blueprint); Hide(); }
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); }
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); }
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); }
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(); } } }
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); } }