Skip to content

Commit 75a5ab9

Browse files
committed
add DoubleArray
1 parent a6ea8dc commit 75a5ab9

File tree

7 files changed

+27
-0
lines changed

7 files changed

+27
-0
lines changed

libsave/include/SatisfactorySave/GameTypes/Arrays/Base/ArrayAll.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include "../BoolArray.h"
44
#include "../ByteArray.h"
5+
#include "../DoubleArray.h"
56
#include "../EnumArray.h"
67
#include "../FloatArray.h"
78
#include "../Int64Array.h"

libsave/include/SatisfactorySave/GameTypes/Arrays/Base/ArrayVisitor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace SatisfactorySave {
66

77
class BoolArray;
88
class ByteArray;
9+
class DoubleArray;
910
class EnumArray;
1011
class FloatArray;
1112
class Int64Array;
@@ -24,6 +25,7 @@ namespace SatisfactorySave {
2425

2526
virtual void visit(BoolArray& a) = 0;
2627
virtual void visit(ByteArray& a) = 0;
28+
virtual void visit(DoubleArray& a) = 0;
2729
virtual void visit(EnumArray& a) = 0;
2830
virtual void visit(FloatArray& a) = 0;
2931
virtual void visit(Int64Array& a) = 0;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma once
2+
3+
#include "Base/ArrayImpl.h"
4+
5+
namespace SatisfactorySave {
6+
7+
class SATISFACTORYSAVE_API DoubleArray final : public ArrayImpl<DoubleArray, double> {
8+
public:
9+
static constexpr std::string_view TypeName = "DoubleProperty";
10+
};
11+
} // namespace SatisfactorySave

libsave/src/GameTypes/Arrays/Base/Array.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ std::shared_ptr<SatisfactorySave::Array> SatisfactorySave::Array::create(const F
1111
array = std::make_shared<BoolArray>();
1212
} else if (array_type == ByteArray::TypeName) {
1313
array = std::make_shared<ByteArray>();
14+
} else if (array_type == DoubleArray::TypeName) {
15+
array = std::make_shared<DoubleArray>();
1416
} else if (array_type == EnumArray::TypeName) {
1517
array = std::make_shared<EnumArray>();
1618
} else if (array_type == FloatArray::TypeName) {

libsavepy/src/GameTypes/Arrays.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ void init_GameTypes_Arrays(py::module_& m) {
1313
.def(py::init<>())
1414
.def_readwrite("Values", &s::ByteArray::Values);
1515

16+
py::class_<s::DoubleArray, s::Array, std::shared_ptr<s::DoubleArray>>(m, "DoubleArray")
17+
.def(py::init<>())
18+
.def_readwrite("Values", &s::DoubleArray::Values);
19+
1620
py::class_<s::EnumArray, s::Array, std::shared_ptr<s::EnumArray>>(m, "EnumArray")
1721
.def(py::init<>())
1822
.def_readwrite("Values", &s::EnumArray::Values);

map/src/MapWindow/UI/PropertyEditor.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,12 @@ void Satisfactory3DMap::UI::PropertyEditor::ArrayEditor::visit(s::ByteArray& a)
180180
});
181181
}
182182

183+
void Satisfactory3DMap::UI::PropertyEditor::ArrayEditor::visit(s::DoubleArray& a) {
184+
EditorList("Values", a.Values, [&](std::size_t idx, auto& item) {
185+
parent_.changed_ |= EditorScalar(("#" + std::to_string(idx)).c_str(), ImGuiDataType_Double, &item);
186+
});
187+
}
188+
183189
void Satisfactory3DMap::UI::PropertyEditor::ArrayEditor::visit(s::EnumArray& a) {
184190
EditorList("Values", a.Values, [&](std::size_t idx, auto& item) {
185191
parent_.changed_ |= EditorName(("#" + std::to_string(idx)).c_str(), item);

map/src/MapWindow/UI/PropertyEditor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ namespace Satisfactory3DMap::UI {
6060

6161
void visit(s::BoolArray& a) override;
6262
void visit(s::ByteArray& a) override;
63+
void visit(s::DoubleArray& a) override;
6364
void visit(s::EnumArray& a) override;
6465
void visit(s::FloatArray& a) override;
6566
void visit(s::Int64Array& a) override;

0 commit comments

Comments
 (0)