Пример #1
0
void JohanCity::BuildType(POINT from,POINT to,MenuType type) {
	switch(type) {
		case mtResidential: {
			BuildZone(from,to,ttResidential);
			break;
		}
		case mtCommercial: {
			BuildZone(from,to,ttCommercial);
			break;
		}
		case mtIndustrial: {
			BuildZone(from,to,ttIndustrial);
			break;
		}
		case mtRoad: {
			BuildRoad(from,to,ttRoad);
			break;
		}
		case mtBulldoze: {
			Bulldoze(from,to);
			break;
		}
		case mtPowerPlant: {
			AddBuilding(new Building(from.x,from.y,2,2,0,0,btPowerPlant));
			break;
		}
		case mtPowerLine: {
			AddBuilding(new Building(from.x,from.y,1,1,0,0,btPowerLine));
			break;
		}
	}
	UpdateBuffers();
}
Пример #2
0
int NFCTileModule::OnRecordEvent(const NFGUID& self, const RECORD_EVENT_DATA& xEventData, const NFData& oldVar, const NFData& newVar)
{
	switch (xEventData.nOpType)
	{
	case RECORD_EVENT_DATA::Add:
	{
		NFGUID xBuildingID = m_pKernelModule->GetRecordObject(self, xEventData.strRecordName, xEventData.nRow, NFrame::Player::BuildingList::BuildingGUID);
		const std::string& strCnfID = m_pKernelModule->GetRecordString(self, xEventData.strRecordName, xEventData.nRow, NFrame::Player::BuildingList::BuildingCnfID);
		const NFVector3& vPos = m_pKernelModule->GetRecordVector3(self, xEventData.strRecordName, xEventData.nRow, NFrame::Player::BuildingList::Pos);
	
		AddBuilding(self, vPos.X(), vPos.Y(), xBuildingID, strCnfID);
	}
		break;
	case RECORD_EVENT_DATA::Del:
	{
		NFGUID xBuildingID = m_pKernelModule->GetRecordObject(self, xEventData.strRecordName, xEventData.nRow, NFrame::Player::BuildingList::BuildingGUID);
		//const std::string& strCnfID = m_pKernelModule->GetRecordString(self, xEventData.strRecordName, xEventData.nRow, NFrame::Player::BuildingList::BuildingCnfID);
		const NFVector3& vPos = m_pKernelModule->GetRecordVector3(self, xEventData.strRecordName, xEventData.nRow, NFrame::Player::BuildingList::Pos);

		RemoveBuilding(self, vPos.X(), vPos.Y(), xBuildingID);
	}
		break;
	default:
		break;
	}

	return 0;
}
Пример #3
0
bool NFCTileModule::LoadTileData(const NFGUID & self, const int nSceneID)
{
	mxTileData.RemoveElement(self);

	std::string strData;
	if (m_pPlayerRedisModule->LoadPlayerTile(nSceneID, self, strData))
	{
		NFMsg::AckMiningTitle xData;
		if (xData.ParseFromString(strData))
		{
			for (int i = 0; i <  xData.tile_size(); ++i)
			{
				const NFMsg::TileState& xTile = xData.tile(i);
				AddTile(self, xTile.x(), xTile.y(), xTile.opr());
			}

			for (int i = 0; i < xData.building_size(); ++i)
			{
				const NFMsg::TileBuilding& xTile = xData.building(i);
				AddBuilding(self, xTile.x(), xTile.y(), NFINetModule::PBToNF(xTile.guid()), xTile.configid());
			}

			for (int i = 0; i < xData.npc_size(); ++i)
			{
				const NFMsg::TileNPC& xTile = xData.npc(i);
				AddNPC(self, xTile.x(), xTile.y(), NFINetModule::PBToNF(xTile.guid()), xTile.configid());
			}

			return true;
		}
	}
	return false;
}