MCPcopy Create free account
hub / github.com/chrxh/alien / createHex

Method createHex

source/EngineInterface/DescriptionEditService.cpp:40–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38}
39
40DataDescription DescriptionEditService::createHex(CreateHexParameters const& parameters)
41{
42 DataDescription result;
43 auto creatureId = parameters._randomCreatureId ? toInt(NumberGenerator::get().getRandomInt(std::numeric_limits<int>::max())) : 0;
44 auto incY = sqrt(3.0) * parameters._cellDistance / 2.0;
45 for (int j = 0; j < parameters._layers; ++j) {
46 for (int i = -(parameters._layers - 1); i < parameters._layers - j; ++i) {
47
48 //create cell: upper layer
49 result.addCell(CellDescription()
50 .setId(NumberGenerator::get().getId())
51 .setEnergy(parameters._energy)
52 .setStiffness(parameters._stiffness)
53 .setPos({toFloat(i * parameters._cellDistance + j * parameters._cellDistance / 2.0), toFloat(-j * incY)})
54 .setMaxConnections(parameters._maxConnections)
55 .setColor(parameters._color)
56 .setBarrier(parameters._barrier)
57 .setCreatureId(creatureId));
58
59 //create cell: under layer (except for 0-layer)
60 if (j > 0) {
61 result.addCell(CellDescription()
62 .setId(NumberGenerator::get().getId())
63 .setEnergy(parameters._energy)
64 .setStiffness(parameters._stiffness)
65 .setPos({toFloat(i * parameters._cellDistance + j * parameters._cellDistance / 2.0), toFloat(j * incY)})
66 .setMaxConnections(parameters._maxConnections)
67 .setColor(parameters._color)
68 .setBarrier(parameters._barrier)
69 .setCreatureId(creatureId));
70 }
71 }
72 }
73
74 reconnectCells(result, parameters._cellDistance * 1.5f);
75 if (parameters._removeStickiness) {
76 removeStickiness(result);
77 }
78 result.setCenter(parameters._center);
79
80 return result;
81}
82
83DataDescription DescriptionEditService::createUnconnectedCircle(CreateUnconnectedCircleParameters const& parameters)
84{

Callers 1

createHexagonMethod · 0.80

Calls 8

toIntFunction · 0.85
toFloatFunction · 0.85
getRandomIntMethod · 0.80
addCellMethod · 0.80
setCenterMethod · 0.80
CellDescriptionClass · 0.70
setBarrierMethod · 0.45
getIdMethod · 0.45

Tested by

no test coverage detected