import { BaseComponent, Component } from "@flamework/components";
import { OnStart } from "@flamework/core";
import { RunService } from "@rbxts/services";
import { vector3_64, vector_64_operations } from "shared/data/globalData";
interface SpaceBody extends BasePart {
UniversePosition: vector3_64;
UniverseSize: vector3_64;
}
@Component({ tag: "SpaceBody" })
class SpatialDistance extends BaseComponent<{}, SpaceBody> implements OnStart {
private camera: Camera;
constructor() {
super();
this.camera = game.Workspace.CurrentCamera!;
this.instance.UniversePosition = vector_64_operations.create(0, 0, 0);
this.instance.UniversePosition = vector_64_operations.create(50, 50, 50);
}
onStart(): void {
print("woa i work ig");
RunService.RenderStepped.Connect(() => this.updateVisual());
}
private updateVisual(): void {
const cameraPosition = this.camera.CFrame.Position;
const spaceBodyMagnitude = this.instance.Position.sub(cameraPosition).Magnitude;
this.instance.Size = vector_64_operations.toVector3(
vector_64_operations.div(this.instance.UniverseSize, spaceBodyMagnitude),
);
}
}
import { BaseComponent, Component } from "@flamework/components";
import { OnStart } from "@flamework/core";
import { RunService } from "@rbxts/services";
import { vector3_64, vector_64_operations } from "shared/data/globalData";
interface SpaceBody extends BasePart {
UniversePosition: vector3_64;
UniverseSize: vector3_64;
}
@Component({ tag: "SpaceBody" })
class SpatialDistance extends BaseComponent<{}, SpaceBody> implements OnStart {
private camera: Camera;
constructor() {
super();
this.camera = game.Workspace.CurrentCamera!;
this.instance.UniversePosition = vector_64_operations.create(0, 0, 0);
this.instance.UniversePosition = vector_64_operations.create(50, 50, 50);
}
onStart(): void {
print("woa i work ig");
RunService.RenderStepped.Connect(() => this.updateVisual());
}
private updateVisual(): void {
const cameraPosition = this.camera.CFrame.Position;
const spaceBodyMagnitude = this.instance.Position.sub(cameraPosition).Magnitude;
this.instance.Size = vector_64_operations.toVector3(
vector_64_operations.div(this.instance.UniverseSize, spaceBodyMagnitude),
);
}
}