Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
"item.meatweapons.airtruck": "Airtruck",
"item.meatweapons.airtruck.lore_0": "A flying vehicle that carries a pilot and a passenger.",
"item.meatweapons.airtruck.lore_1": "Shift-click to disassemble.",
"entity.meatweapons.airtruck": "Airtruck",

"block.meatweapons.tinker_table": "Tinker Table",

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
"item.meatweapons.airtruck": "空中货车",
"item.meatweapons.airtruck.lore_0": "能搭乘一名飞行员和一名乘客的空中载具。",
"item.meatweapons.airtruck.lore_1": "Shift点击以拆卸。",
"entity.meatweapons.airtruck": "空中货车",

"block.meatweapons.tinker_table": "改装台",

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,43 @@ Prints the top stack entry.

Places the current value of the program counter (the address of the currently executed instruction) on the top of the stack.

\cat{words}
# Words

## :

Starts definition of a new word. The word's name is given by the character sequence following :.

```
: aword 123 . ;
```

## :I

Starts definition of a new immediate word. The word's name is given by the character sequence following :I.

```
:I aword 123 . ;
```

## ;

Terminates various constructs:

- Word definitions
- Immediate word definitions
- Inline NEEPASM instructions

## :NONAME

Starts definition of a new anonymous word. When the definition ends, the address of the word is placed on the stack.

```
:noname 123 . ;

execute
```

\cat{stack}
# Stack

Expand Down Expand Up @@ -80,6 +117,8 @@ Copies the top return stack entry to the data stack.
\cat{flow_control}
# Flow Control

## END ( -- )

Emits the END instruction, which stops execution. Useful as a placeholder for backpatching. Equivalent to NEEPASM `END`.

## IF ( n1 -- ) (immediate)
Expand Down Expand Up @@ -198,6 +237,68 @@ Tests if n1 is less than or equal to n2. Equivalent to NEEPASM `LTEQ`.

Tests if n1 is greater than or equal to n2. Equivalent to NEEPASM `GTEQ`.

\cat{memory}
# Memory

## VARIABLE ( "name" -- )

Allocates a new variable with the name that follows.

Invoking the variable's name pushes its address to the stack.

```
variable v

# Store 123
123 v !

v ? # result: 123
```

## ARRAY ( "name" size -- )

Allocates an array of the following name and size.

Note that size of the array follows the word, rather than preceding it. All elements are initialised to zero.

```
# Create an array of 6 elements
array a 6

# Set the third element to 123
123 a 2 + !

# Print the third element
a 2 + ?
```

## ! ( n1 addr -- )

Stores n1 at the given address.

## @ ( addr -- n1 )

Retrieves the data at the given address.

## ? ( addr -- )

Prints the data stored at the given address. Equivalent to @ .

## ' ( "word" -- addr )

Pushes the address of the following word to the stack.

```
: aword 1 + . ;

# Print the word's address
' aword .
```

## EXECUTE ( addr -- )

Branches to the instruction at the given address. Equivalent to NEEPASM `CALL`.

\cat{compiler_words}
# Compiler Words

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,43 @@

将程序计数器(当前所执行指令的地址)的当前值压入栈顶。

\cat{words}
# 词

## :

用于新起一项词的定义。`:`后方的字符串即是词名。

```
: aword 123 . ;
```

## :I

用于新起一项立即词的定义。`:I`后方的字符串即是词名。

```
:I aword 123 . ;
```

## ;

用于结束多种结构体:

- 词的定义
- 立即词的定义
- 内联NEEPASM指令

## :NONAME

用于新起一项匿名词的定义。定义结束时向栈压入该词的地址。

```
:noname 123 . ;

execute
```

\cat{stack}
# 栈

Expand Down Expand Up @@ -80,6 +117,8 @@
\cat{flow_control}
# 流程控制

## END ( -- )

发出用于终止执行的END指令。适合用作占位和回填。与NEEPASM的`END`等价。

## IF ( n1 -- )(立即词)
Expand Down Expand Up @@ -199,6 +238,74 @@ begin

检查n1是否大于等于n2。与NEEPASM的`GTEQ`等价。

\cat{memory}
# 内存

## VARIABLE ( "名称" -- )

分配一个新变量,并取该词后方的名称为变量名。

以变量名进行调用时会将其地址压栈。

```
variable v

# Store 123 [1]
123 v !

v ? # result: 123 [2]
```
[1] 存储123
[2] 结果:123

## ARRAY ( "名称" 大小 -- )

分配一个新数组,取后方的名称为数组名,大小为数组大小。

需注意,大小参数需在词后方,而不是前方。数组内所有元素初始化为0。

```
# Create an array of 6 elements [1]
array a 6

# Set the third element to 123 [2]
123 a 2 + !

# Print the third element [3]
a 2 + ?
```
[1] 创建包含6个元素的数组
[2] 将第三个元素设为123
[3] 打印第三个元素

## ! ( n1 地址 -- )

将n1存入所给地址。

## @ ( 地址 -- n1 )

读取所给地址处的数据。

## ? ( 地址 -- )

打印给定地址处的数据。与`@ .`等价。

## ' ( "词" -- 地址 )

将本词后方的词的地址压栈。

```
: aword 1 + . ;

# Print the word's address [1]
' aword .
```
[1] 打印词的地址

## EXECUTE ( 地址 -- )

跳转到给定地址处的指令。与NEEPASM的`CALL`等价。

\cat{compiler_words}
# 编译器词

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
id: cloning
---

# Cloning

*The essential Saltes of Animals may be so prepared and preserved, that an ingenious Man may have the whole Ark of Noah in his own Studie, and raise the fine Shape of an Animal out of its Ashes at his Pleasure.*
- Borellus

To obtain the *Essential Saltes* of an organism, it must be exposed to an Ash Preparation potion and then incinerated. This procedure will succeed even if the organism has an innate resistance to fire, but the disassembly will have to be manual.

*Essential Saltes* can be used in an Oviparous Synthesiser to produce eggs.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
id: synthesiser
---

# Oviparous Synthesiser

To cast off the vestige of nature is to inch towards revelation; to replicate the natural forms of flesh - finding wisdom in their madness - is to step towards Enlightenment.

## Usage

The Oviparous Synthesiser creates eggs of a template organism through its *Essential Saltes* Right-clicking the machine with the corresponding *Essential Saltes* will install or remove the template.

In order to operate, the machine must be fed Meat. The amount of meat to produce an egg varies depending on the size of the organism.

Production of eggs can be temporarily disabled with a redstone signal.

## Eggs

Eggs can be moved in standard ways, such as with water streams and pistons. They can also be picked up as items by hitting them.

- Immersion in blood will allow eggs to hatch.
- Injecting blood directly using a PLC will trigger immediate hatching.
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,21 @@ Pipes connect to any block that can accept fluids, although some blocks only all

For fluids to move through pipes, there must be a height difference or an active pump. Fluids obey gravity, so they will naturally flow from containers at higher elevations to lower ones. Flow can also be induced by placing Redstone Pumps along the desired path of flow.

Pipes on the underside of containers will passively extract fluid. Pumps are required to extract fluid from the container's other sides.

Pumps are enabled with redstone by default, but this behaviour can be inverted by sneak-clicking with an empty hand.

## Gravity

Pipes on the underside of containers will passively extract fluid. Pumps are required to extract fluid from the container's other sides.

# Placement

To prevent unwanted connections, fluid pipes follow certain rules when they are placed,
To prevent unwanted connections, fluid pipes follow certain rules when they are placed.

-
- If placed beween two pipes of matching colour, the pipe will connect to both of them.
- Place on the side of a fluid container to connect to it.
- When placed next to another pipe, the new pipe will only connect if the other one has less than two connections.
- Pipes of differing colours will not connect.
- Sneaking places a pipe with no connections.
- Click the side of a pipe with another pipe to form a new connection.

## Behaviour

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
id: integrator
---

# Integrator Organism

An Integrator is a biomechanical information processing system intended to ease the production of machines. Designed to withstand high quantities of inhuman knowledge, Integrators can confer this information to certain substances, ascending them to Enlightened forms.

## Acquisition

The technology to produce Integrators is long-lost, but their eggs can still be found in dungeons and other hidden places.

Alternatively, offering a Reanimated Heart to the receiver configuration below might cause one to appear.

\image[width=328,height=245,scale=0.6]{neepmeat:guide/images/egg_receiver.png}

To hatch an Integrator Egg, put it in a comfy place and pump in a bucketful of blood using fluid pipes. After a short time, the Integrator will hatch.

## Usage

Each Integrator has an internal information storage that is gradually filled as it listens to the cosmos. Feeding the organism with Whisper Flour accelerate learning.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
id: large_crusher
---

# Large Crusher

The Large Crusher provides superior efficiency and yield than its smaller counterpart.

## Usage

Up to four Crusher Segments can be part of a machine. Each segment runs at the same speed, so adding more segments increases efficiency.

Minimum power: 100eJ/t

## Required Components

- Crusher Segment (up to four)
- Item Input (Large Hopper)
- Item Output
- Motor Port

## Optional Components

- Lucky One (increases yield of extra outputs)
Loading
Loading