Fixed vision blocking; MapObject::Occupy() now blueprint implementable
This commit is contained in:
@@ -55,15 +55,14 @@ void AAdventurePlayerController::LeftClick()
|
||||
else { return; }
|
||||
}
|
||||
|
||||
TSet<AHexTile*> AAdventurePlayerController::Vision(int32 Radius)
|
||||
TArray<AHexTile*> AAdventurePlayerController::Vision(int32 Radius)
|
||||
{
|
||||
TSet<AHexTile*> InRange = MapRef->BreadthFirstSearch(CurrentHex, Radius);
|
||||
TSet<AHexTile*> Results;
|
||||
TArray<AHexTile*> Results;
|
||||
|
||||
for (auto& Hex : InRange) {
|
||||
if (Hex->Distance(CurrentHex) == Radius)
|
||||
{
|
||||
AHexTile* Target;
|
||||
for (int32 i = 1; i <= Radius; i++)
|
||||
{
|
||||
float t = 1.0f / Radius * i;
|
||||
@@ -73,9 +72,11 @@ TSet<AHexTile*> AAdventurePlayerController::Vision(int32 Radius)
|
||||
AHexTile* SampleHex = MapRef->Grid[MapRef->GridIndex(Sample.Q, Sample.R)];
|
||||
|
||||
Results.Add(SampleHex);
|
||||
ExploredHexes.Add(Hex);
|
||||
|
||||
if (!SampleHex->bFree || ExploredHexes.Contains(SampleHex))
|
||||
if (!ExploredHexes.Contains(SampleHex))
|
||||
{ ExploredHexes.Add(Hex); }
|
||||
|
||||
if (!SampleHex->bFree)
|
||||
{ break; }
|
||||
}
|
||||
}
|
||||
@@ -131,13 +132,15 @@ void AAdventurePlayerController::FitOnGrid(AMapObject* MapObject)
|
||||
void AAdventurePlayerController::PlaceObject(TSubclassOf<AMapObject> MapObjClass, AHexTile* HoveredTile)
|
||||
{
|
||||
AMapObject* SpawnedObj = World->SpawnActor<AMapObject>(MapObjClass, FTransform(HoveredTile->GetActorTransform().GetLocation()));
|
||||
SpawnedObj->MapRef = MapRef;
|
||||
SpawnedObj->Origin = HoveredTile;
|
||||
SpawnedObj->bPlaced = true;
|
||||
HoveredTile->bFree = false;
|
||||
HoveredTile->MapObject = SpawnedObj;
|
||||
SpawnedObj->Occupy();
|
||||
|
||||
MapRef->MapObjects.Add(HoveredTile, SpawnedObj);
|
||||
MapRef->IncID++;
|
||||
SpawnedObj->ID = MapRef->IncID;
|
||||
MapRef->MapObjectsByID.Add(MapRef->IncID, SpawnedObj);
|
||||
SpawnedObj->Occupy();
|
||||
}
|
||||
Reference in New Issue
Block a user