Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
nazarpunk committed Dec 2, 2024
1 parent b87c95c commit 33e8b2d
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 35 deletions.
2 changes: 1 addition & 1 deletion Framework/Group.as
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ class Group {

/*
// This will be difficult to support with potentially disjoint, cell-based regions
// as it would involve enumerating all the cells that are covered by a particularregion
// as it would involve enumerating all the cells that are covered by a particular region
// a better implementation would be a trigger that adds relevant units as they enter
// and removes them if they leave...
native ForGroup takes group whichGroup, code callback returns nothing
Expand Down
1 change: 1 addition & 0 deletions Writerside/cfg/buildprofiles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<buildprofiles xsi:noNamespaceSchemaLocation="https://resources.jetbrains.com/writerside/1.0/build-profiles.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!-- https://www.jetbrains.com/help/writerside/generate-sitemap.html -->
<sitemap priority="0.35" change-frequency="daily"/>

<build-profile instance="AngelScript">
Expand Down
7 changes: 5 additions & 2 deletions Writerside/topics/destructor.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,11 @@ void [[[main|main.md]]](){
}
```

Обратите внимание, что управление памятью с помощью сборки мусора не даёт легко предсказать, когда будет выполнен
деструктор.
> Невозможно с приемлемой точностью предсказать когда будет выполнен деструктор. Не полагайтесь на него в бизнес-логике!
>
> Создание или удаления объектов типа [](handle.md) в деструкторе гарантировано приведёт к десинху!
>
{style="warning"}

Деструктор будет вызван только один раз, даже
если объект будет воскрешен путем добавления ссылки на него во время выполнения деструктора.
Expand Down
53 changes: 29 additions & 24 deletions Writerside/topics/framework-group.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Group.as

<a href="https://github.com/WarRaft/AngelScript-doc/blob/main/Framework/Group.as"/>
[](https://github.com/WarRaft/AngelScript-doc/blob/main/Framework/Group.as)

Тип `group` встроен в игру и под капотом представляет собой [связанный список](https://w.wiki/7$D5) элементов
типа `unit`.
Expand All @@ -24,57 +24,62 @@ void [[[main|main.md]]](){
}
```

## Деструктор

При уничтожении класса `Group` будет уничтожен игровой объект `group`, таким образом предотвращая утечку памяти.

## Методы

### insert

Добавляет в группу одного или несколько <tooltip term="unit">юнитов</tooltip>.

<table>

<tr><td>Перегрузки</td></tr>

<tr><td>
<code-block lang="C++">

```c#
Group@ insert(unit target)
</code-block> Добавляет в группу <tooltip term="unit">юнита</tooltip> <code>target</code>.
```
Добавляет в группу <tooltip term="unit">юнита</tooltip> `target`.
</td></tr>

<tr><td>
<code-block lang="C++">
Group@ insert(string unitname, uint limit = 0)
</code-block> Все <tooltip term="unit">юниты</tooltip> с именем <code>unitname</code> будут добавлены в группу. Все <code>unitname</code> перечислены в <code>units.slk</code>.

```c#
Group@ insert(string unitname)
```
Все <tooltip term="unit">юниты</tooltip> с именем `unitname` будут добавлены в группу. Все `unitname` перечислены в
`units.slk`.
</td></tr>

<tr><td>
<code-block lang="C++">
Group@ insert(float x, float y, float radius, uint limit = 0)
</code-block> Все <tooltip term="unit">юниты</tooltip>, находящиеся на расстоянии <code>radius</code> от точки <code>x</code>, <code>y</code> будут добавлены в группу. Расстояние считается от центра юнита.

```c#
Group@ insert(float x, float y, float radius)
```

Все <tooltip term="unit">юниты</tooltip>, находящиеся на расстоянии `radius` от точки `x`, `y` будут добавлены в группу.
Расстояние считается от центра юнита.
</td></tr>

<tr><td>
<code-block lang="C++">
Group@ insert(rect rectangle, uint limit = 0)
</code-block> Добавляет в группу всех <tooltip term="unit">юнитов</tooltip>, находящихся в прямоугольнике <code>rectangle</code>.

```c#
Group@ insert(rect rectangle)
```
Добавляет в группу всех <tooltip term="unit">юнитов</tooltip>, находящихся в прямоугольнике rectangle.
</td></tr>

<tr><td>
<code-block lang="C++">

```c#
Group@ insert(player owner, bool selected = false)
</code-block> Если <code>selected</code> равно <code>false</code> добавляет в группу выбранные <tooltip term="unit">юниты</tooltip> игрока <code>owner</code>. Иначе
```

Если <code>selected</code> равно <code>false</code> добавляет в группу выбранные <tooltip term="unit">юниты</tooltip>
игрока <code>owner</code>. Иначе
добавляет <tooltip term="unit">юниты</tooltip> игрока <code>owner</code>.
</td></tr>

</table>

`limit`
: Если значение больше ноля, то добавление закончится когда будет добавлено `limit` <tooltip term="unit">
юнитов</tooltip>.

```C#
Group A;

Expand Down
5 changes: 3 additions & 2 deletions Writerside/topics/null.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
ссылка на переменную содержит значение примитива. Для более сложных объектов такой подход не применим и поэтому
требуется специально обученное значение, которое будет обозначать что переменная не хранит никакой объект.

> В целях совместимости с конвертированным из других языков кодом был добавлен [](nil.md), который по сути
> В целях совместимости с конвертированным из других языков кодом был добавлен [](nil.md), который по сути является
> аналогом `null` для типа [](handle.md).
```C#
funcdef void Callback(); // Объявим простой тип функции, чтоб получить использовать её для ссылки
Expand All @@ -18,7 +19,7 @@ void [[[main|main.md]]](){
};
TimerStart(CreateTimer(), 1.f, false, @A); // Используем переменную каким либо образом
A@ = null; // Освободим память не дожижаясь заверщения main
A@ = null; // Освободим память не дожидаясь завершения main
}
```

Expand Down
10 changes: 4 additions & 6 deletions Writerside/topics/string-method.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ string C = "0123456789".substr(9,100); // "9"

## insert

Вставляет в строку другую строку.
Вставляет в строку другую строку. При этом значение текущей строки не меняется, метод возвращает новую строку.

```C#
void insert(uint pos, const string &in other)
Expand All @@ -88,8 +88,6 @@ void insert(uint pos, const string &in other)
`other`
: Строка, которая будет вставлена.

> Этот метод не изменяет значение текущей строки, а создаёт новую.
```C#
string A = "0123456789".insert(5,"_"); // "01234_56789"
```
Expand All @@ -108,10 +106,10 @@ int findLastNotOf(const string &in chars, int start = -1)
```

`str`
: Поиск завершится если будет найдено **полное** совпадение с переданной строкой
: Поиск завершится если будет найдено полное совпадение с переданной строкой.

`chars`
: Поиск завершится если будет найдено совпадение с **любым** байтом переданной строки.
: Поиск завершится если будет найдено совпадение с любым байтом переданной строки.

`start`
: Позиция с которой начнётся поиск.
Expand All @@ -137,4 +135,4 @@ array<string> A@ = "0-1-2-3".split("-"); // ["0","1","2","3"]
array<string> B@ = "0-1-2-3".split("?"); // ["0-1-2-3"]
array<string> С@ = "0-1-2-3".split(""); // ["0","-","1","-","2","-","3"]
array<string> D@ = "".split("?"); // [""]
```
```

0 comments on commit 33e8b2d

Please sign in to comment.