mirror of
https://github.com/exogen/t2-mapper.git
synced 2026-07-16 08:55:52 +00:00
case insensitive dataBlock lookup, fix orientation
This commit is contained in:
parent
6473fd6ec3
commit
3a99e77e96
2 changed files with 32 additions and 3 deletions
|
|
@ -11,8 +11,22 @@ import { ShapeModel, ShapePlaceholder } from "./GenericShape";
|
||||||
|
|
||||||
const dataBlockToShapeName = {
|
const dataBlockToShapeName = {
|
||||||
RepairPack: "pack_upgrade_repair.dts",
|
RepairPack: "pack_upgrade_repair.dts",
|
||||||
|
Flag: "flag.dts",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let _caseInsensitiveLookup: Record<string, string>;
|
||||||
|
|
||||||
|
function getDataBlockShape(dataBlock: string) {
|
||||||
|
if (!_caseInsensitiveLookup) {
|
||||||
|
_caseInsensitiveLookup = Object.fromEntries(
|
||||||
|
Object.entries(dataBlockToShapeName).map(([key, value]) => {
|
||||||
|
return [key.toLowerCase(), value];
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return _caseInsensitiveLookup[dataBlock.toLowerCase()];
|
||||||
|
}
|
||||||
|
|
||||||
export function Item({ object }: { object: ConsoleObject }) {
|
export function Item({ object }: { object: ConsoleObject }) {
|
||||||
const dataBlock = getProperty(object, "dataBlock").value;
|
const dataBlock = getProperty(object, "dataBlock").value;
|
||||||
|
|
||||||
|
|
@ -20,7 +34,7 @@ export function Item({ object }: { object: ConsoleObject }) {
|
||||||
const [scaleX, scaleY, scaleZ] = useMemo(() => getScale(object), [object]);
|
const [scaleX, scaleY, scaleZ] = useMemo(() => getScale(object), [object]);
|
||||||
const q = useMemo(() => getRotation(object, true), [object]);
|
const q = useMemo(() => getRotation(object, true), [object]);
|
||||||
|
|
||||||
const shapeName = dataBlockToShapeName[dataBlock];
|
const shapeName = getDataBlockShape(dataBlock);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<group
|
<group
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,23 @@ import { ShapeModel, ShapePlaceholder } from "./GenericShape";
|
||||||
const dataBlockToShapeName = {
|
const dataBlockToShapeName = {
|
||||||
StationInventory: "station_inv_human.dts",
|
StationInventory: "station_inv_human.dts",
|
||||||
SensorLargePulse: "sensor_pulse_large.dts",
|
SensorLargePulse: "sensor_pulse_large.dts",
|
||||||
|
GeneratorLarge: "station_generator_large.dts",
|
||||||
|
SolarPanel: "solarpanel.dts",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let _caseInsensitiveLookup: Record<string, string>;
|
||||||
|
|
||||||
|
function getDataBlockShape(dataBlock: string) {
|
||||||
|
if (!_caseInsensitiveLookup) {
|
||||||
|
_caseInsensitiveLookup = Object.fromEntries(
|
||||||
|
Object.entries(dataBlockToShapeName).map(([key, value]) => {
|
||||||
|
return [key.toLowerCase(), value];
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return _caseInsensitiveLookup[dataBlock.toLowerCase()];
|
||||||
|
}
|
||||||
|
|
||||||
export function StaticShape({ object }: { object: ConsoleObject }) {
|
export function StaticShape({ object }: { object: ConsoleObject }) {
|
||||||
const dataBlock = getProperty(object, "dataBlock").value;
|
const dataBlock = getProperty(object, "dataBlock").value;
|
||||||
|
|
||||||
|
|
@ -21,13 +36,13 @@ export function StaticShape({ object }: { object: ConsoleObject }) {
|
||||||
const [scaleX, scaleY, scaleZ] = useMemo(() => getScale(object), [object]);
|
const [scaleX, scaleY, scaleZ] = useMemo(() => getScale(object), [object]);
|
||||||
const q = useMemo(() => getRotation(object, true), [object]);
|
const q = useMemo(() => getRotation(object, true), [object]);
|
||||||
|
|
||||||
const shapeName = dataBlockToShapeName[dataBlock];
|
const shapeName = getDataBlockShape(dataBlock);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<group
|
<group
|
||||||
quaternion={q}
|
quaternion={q}
|
||||||
position={[x - 1024, y, z - 1024]}
|
position={[x - 1024, y, z - 1024]}
|
||||||
scale={[-scaleX, scaleY, -scaleZ]}
|
scale={[-scaleX, scaleY, scaleZ]}
|
||||||
>
|
>
|
||||||
{shapeName ? (
|
{shapeName ? (
|
||||||
<ErrorBoundary fallback={<ShapePlaceholder color="red" />}>
|
<ErrorBoundary fallback={<ShapePlaceholder color="red" />}>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue