Files
integration/Source/Integration/TangibleManager.cpp

62 lines
1.3 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#include "TangibleManager.h"
#include "Tangible.h"
#include "DebugPrint.h"
using namespace DebugPrint;
UlxTangibleManager::UlxTangibleManager() {
World = nullptr;
ClassTangibleActor = nullptr;
Player = 0;
Near = IdView();
}
void UlxTangibleManager::Init(UWorld* world, UClass* tanact) {
World = world;
ClassTangibleActor = tanact;
Player = 0;
Near = IdView();
}
UlxTangible* UlxTangibleManager::GetTangible(int64 id) {
UlxTangible** p = IdToTangible.Find(id);
if (p == nullptr) {
return nullptr;
}
else {
return *p;
}
}
UlxTangible* UlxTangibleManager::MakeTangible(int64 id) {
UlxTangible*& t = IdToTangible.FindOrAdd(id);
if (t == nullptr) {
t = NewObject<UlxTangible>();
t->Init(this, id);
// TODO: fix this. The blueprint needs to be assigned
// during animation queue parsing, based on the animation
// queue keyword 'bp'.
t->SetActorBlueprintClass(ClassTangibleActor);
}
return t;
}
void UlxTangibleManager::DeleteTangible(int64 id) {
// IMPLEMENT ME
}
UlxTangibleManager::IdArray UlxTangibleManager::GetLive() {
IdArray result;
result.SetNum(IdToTangible.Num());
int next = 0;
for (auto& pair : IdToTangible) {
result[next++] = pair.Key;
}
return result;
}