Added reference to harbored map object to tiles; minor refactoring
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user