Added reference to harbored map object to tiles; minor refactoring

This commit is contained in:
2022-06-10 16:15:12 +02:00
parent 26d3289962
commit 18af6a56be
3 changed files with 16 additions and 9 deletions
+7 -6
View File
@@ -112,15 +112,16 @@ void AAdventurePlayerController::FitOnGrid(AMapObject* MapObject)
if (HoveredHex->bFree) { MapObject->SetActorLocation(FVector(HoveredHex->GetActorLocation())); }
}
// called from BP; generally takes the Hex under the player cursor as argument
void AAdventurePlayerController::PlaceObject(TSubclassOf<AMapObject> MapObjClass, AHexTile* OnHex)
// To-Do: factor out core functionality to a seperate (more neutral) class like AdventureMap.
void AAdventurePlayerController::PlaceObject(TSubclassOf<AMapObject> MapObjClass, AHexTile* HoveredTile)
{
AMapObject* SpawnedObj = World->SpawnActor<AMapObject>(MapObjClass, FTransform(OnHex->GetActorTransform().GetLocation()));
SpawnedObj->Origin = OnHex;
OnHex->bFree = false;
AMapObject* SpawnedObj = World->SpawnActor<AMapObject>(MapObjClass, FTransform(HoveredTile->GetActorTransform().GetLocation()));
SpawnedObj->Origin = HoveredTile;
HoveredTile->bFree = false;
HoveredTile->MapObject = SpawnedObj;
SpawnedObj->Occupy();
MapRef->MapObjects.Add(OnHex, SpawnedObj);
MapRef->MapObjects.Add(HoveredTile, SpawnedObj);
MapRef->IncID++;
SpawnedObj->ID = MapRef->IncID;
MapRef->MapObjectsByID.Add(MapRef->IncID, SpawnedObj);