Skip to content

Commit

Permalink
added CircuitNetwork article
Browse files Browse the repository at this point in the history
  • Loading branch information
CanadianBeaver committed May 11, 2024
1 parent 6f9ddf9 commit ac27fde
Show file tree
Hide file tree
Showing 13 changed files with 66 additions and 5 deletions.
35 changes: 33 additions & 2 deletions docs/CircuitNetwork/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
# Логическая сеть и комбинаторы

:::danger
Это заготовка для будущей статьи, сейчас она не рекомендуется для изучения, а в будущем может измениться или вообще исчезнуть.
:::tip Вся статья, кратко
Логические сети в *Factorio* - это наше всё для управления и автоматизации чего там.
:::

С помощью разноцветных проводов, зелёных `Green wire` и красных `Red wire`, которые соединяют различные игровые элементы як сундуки, резервуары, конвейеры и [прочую лабуду](https://wiki.factorio.com/Circuit_network#Devices), можно контролировать поток ресурсов, управлять производственными линиями и оптимизировать эффективность работы почти всего и вся. Основой сети являются комбинаторы, хотя иногда можно и без них.

Имеется три [типа комбинаторов](https://wiki.factorio.com/Circuit_network#Combinators), которые работают на основе заданных математических операций и логических условий. Арифметический комбинатор `Arithmetic combinator` выполняет базовые арифметические операции, сложение, вычитание, умножение и деление. Сравнивающий комбинатор `Decider combinator` сравнивает два сигнала и что-то решает. Постоянный комбинатор `Constant combinator` генерирует заданные сигналы [каждый квант игрового времени](../Additionals/FPSandUPS.md#как-решать-вопросы-с-производительностью).

[Сигналом](https://wiki.factorio.com/Circuit_network#Virtual_signals) может быть всё что угодно, реальные предметы, жидкости, а также виртуальные сигналы, которые не привязаны к игровым предметами и являются числами, буквами, цветами и ещё какая-то фигня. Вся суть в том, что по раскрашенным проводам в логической сети гуляют сигналы от комбинатора к комбинатору и преобразуются в другие сигналы. А ещё в зависимости от сигналов можно что-то включать или выключать. При этом сигналы по разным проводам не смешиваются друг с другом, если только провода не соединены вместе.

## Самый простой пример

Самое простое, что можно сделать, это написать щёта впечатляющее на заборе, точнее на постоянном комбинаторе `!Constant combinator`. Чтобы создать некое поэтическое творение используются виртуальные сигналы, которые включают буквы английского алфавита (A-Z) и цифры (0-9). Букварь из великого и могучего не предусмотрен, но можно выкрутиться, например так:

![Нет войне](./images/CircuitNetwork.01.png)

[Подробнее про письмена](./Writing.md)

## Простой пример

Реально полезный простой пример можно реализовать без комбинаторов, только с одним проводом, без разницы какого цвета. Соединим например какой-то сундук `Steel chest` и лампу `Lamp` зелёным проводом и зададим следующее условие на лампе:

![Простой пример с лампой](./images/CircuitNetwork.02.png)

Такая конструкция будет зажигать лампу если сундук пустой и гасить её если в сундуке чёта есть. Похоже на простую световую сигнализацию по условию.

Другим простым примером можем быть управление движением предметов на конвейере, если имеется их достаточное количество. Это позволяет накапливать предметы для производства и отбирать их с конвейера при перепроизводстве. Для этого достаточно соединить два сочлениия конвейера цветным проводом, зелёным. Первое сочление (красная стрелка) ставим на считывание количества предметов. На втором сочлении задаём условие движения конвейера (зелёная стрелка).

![Другой простой пример с конвейером](./images/CircuitNetwork.03.png)

Таким образом, мы будем складывать в сундуки микросхемы, только если их количество производиться в переизбытке.

[Ещё разные примеры](./SimpleExamples.md)

5 changes: 5 additions & 0 deletions docs/CircuitNetwork/SimpleExamples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Простые примеры

:::danger
Это заготовка для будущей статьи, сейчас она не рекомендуется для изучения, а в будущем может измениться или вообще исчезнуть.
:::
5 changes: 5 additions & 0 deletions docs/CircuitNetwork/Writing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Пишем на комбинаторах

:::danger
Это заготовка для будущей статьи, сейчас она не рекомендуется для изучения, а в будущем может измениться или вообще исчезнуть.
:::
Binary file added docs/CircuitNetwork/images/CircuitNetwork.01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/CircuitNetwork/images/CircuitNetwork.02.kra
Binary file not shown.
Binary file added docs/CircuitNetwork/images/CircuitNetwork.02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/CircuitNetwork/images/CircuitNetwork.03.kra
Binary file not shown.
Binary file added docs/CircuitNetwork/images/CircuitNetwork.03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions website/docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,12 @@ const config: Config = {
position: 'left',
label: 'Энергия',
},
{
type: 'docSidebar',
sidebarId: 'circuitNetworkSidebar',
position: 'left',
label: 'Логистическая сеть',
},
{
type: 'docSidebar',
sidebarId: 'additionalSidebar',
Expand Down
Binary file added website/factorio_icons/lamp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed website/factorio_icons/small-lamp.png
Binary file not shown.
18 changes: 16 additions & 2 deletions website/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,21 @@ const sidebars: SidebarsConfig = {
}
],

circuitNetworkSidebar: [
{
type: 'category',
label: 'Логическая сеть и комбинаторы',
link: {
type: 'doc',
id: 'CircuitNetwork/README',
},
items: [
'CircuitNetwork/Writing',
'CircuitNetwork/SimpleExamples'
]
}
],

additionalSidebar: [
{
type: 'category',
Expand Down Expand Up @@ -119,8 +134,7 @@ const sidebars: SidebarsConfig = {
},
items: []
}
],

]

};

Expand Down
2 changes: 1 addition & 1 deletion website/src/remark/remark-factorio-icons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ const IconNames: string[] = [
'Iron plate',
'Kovarex enrichment process',
'Lab',
'Lamp',
'Laser turret',
'Landfill',
'Light oil cracking',
Expand Down Expand Up @@ -109,7 +110,6 @@ const IconNames: string[] = [
'Rocket fuel',
'Satellite',
'Small electric pole',
'Small lamp',
'Solar energy',
'Solar panel',
'Solid fuel from heavy oil',
Expand Down

0 comments on commit ac27fde

Please sign in to comment.