Описание
**[中文介绍看这里](https://www.mcmod.cn/class/29058.html)**
# laowu meme
A Minecraft meme mod about cats! When a cat named **Laowu** (老吴) gets close to any other cat, they lock eyes, bump heads with mirrored head-tilts, arch their backs, grow bigger, and a random BGM starts playing. Right-click either cat to break it up and they walk away naturally. Works in singleplayer and multiplayer — the server is authoritative, so every player sees the exact same thing.
## Features
- A cat named "Laowu" + any cat within 6 blocks → they walk together, face each other, **mirrored head-tilt + arched-back hissing pose + size boost**
- Randomly plays one of the selected BGMs (audible within 16 blocks)
- Right-click either cat to break them up; they walk off naturally
- The broken-up pair won't retrigger for 3 minutes
- **Milkcat reskin**: name any cat "奶猫" (Milkcat) to swap its texture to a cute yellow cartoon cat (same skin for all coat colors, adults only)
- **Shovel flatten**: right-click a cat with any shovel to flatten it into a "干" shape (body squashed, legs splayed) — it pops back after 8 seconds; also cancels any active head-bump pairing
## Maodie Cat (multi-block structure)
There's a second feature: **Maodie Cat** (耄耋). Build a wall structure from **any wood-type blocks** (oak, spruce, birch, jungle, acacia, dark oak, cherry, mangrove, warped, etc. — mixing is fine), and a nearby cat named **Maodie** will be summoned to sit on its seat. While seated, the cat hisses on loop when a player is within 5 blocks and turns its head to track the nearest player. Breaking the structure releases it.

### How it works
- Once the structure is detected, the server finds a cat named Maodie within 10 blocks, teleports it onto the **anchor stair top** and makes it sit (AI not frozen).
- Seated cat: player within **5 blocks** → looping hiss sound (`maodie.ogg`, audible within 16 blocks with natural falloff); the cat **tracks the nearest player** with its head. Stops when you leave the range.
- Breaking any part of the structure (especially the anchor stair) → releases the cat; it stands up and walks away.
- **Name-based reskin**: any cat named Maodie gets a "Hakimi-style" texture matching its own coat color (adult cats only; kittens keep vanilla textures to avoid errors). Purely client-side, name-based, independent of the structure.
### Building the structure
This is a "cat house wall": lay a **6-wide (x:0–5) × 6-tall (y:0–5)** vertical face on the ground, all blocks on the **same z layer** (1 block thick). **Any wood-type blocks** work (planks / stairs / trapdoors / slabs); different wood types can be mixed.
Elevation view (y top-to-bottom, x left-to-right; origin `[0,0,0]` is the bottom-left ground block):
```
y\x 0 1 2 3 4 5
5 [ ] [ ] [T] [T] [ ] [ ]
4 [ ] [S] [T] [S] [S] [ ]
3 [T] [T] [ ] [S] [ ] [T]
2 [T] [L] [S] [ ] [T] [T]
1 [ ] [S] [T] [S] [S] [ ] ← anchor stair at x=4,y=1 (cat sits on top)
0 [ ] [T] [P] [P] [T] [ ]
```
Legend: `S`=stairs `T`=trapdoor `P`=planks `L`=slab `[ ]`=air (empty)
Block list (23 blocks total, relative to origin `[0,0,0]`):
| Coords (x,y,z) | Block | Key state |
|---|---|---|
| 1,0,0 | Trapdoor | bottom half, open |
| 2,0,0 | Planks | — |
| 3,0,0 | Planks | — |
| 4,0,0 | Trapdoor | bottom half, open |
| 1,1,0 | Stairs | top half, straight |
| 2,1,0 | Trapdoor | top half, closed |
| 3,1,0 | Stairs | top half, straight |
| **4,1,0** | **Stairs** | **top half, straight (anchor / cat seat)** |
| 0,2,0 | Trapdoor | top half, open |
| 1,2,0 | Slab | top half |
| 2,2,0 | Stairs | top half, straight |
| 4,2,0 | Trapdoor | bottom half, open |
| 5,2,0 | Trapdoor | top half, open |
| 0,3,0 | Trapdoor | bottom half, open |
| 1,3,0 | Trapdoor | bottom half, open |
| 3,3,0 | Stairs | bottom half, straight |
| 5,3,0 | Trapdoor | top half, open |
| 1,4,0 | Stairs | bottom half, straight |
| 2,4,0 | Trapdoor | bottom half, closed |
| 3,4,0 | Stairs | bottom half, straight |
| 4,4,0 | Stairs | bottom half, straight |
| 2,5,0 | Trapdoor | bottom half, closed |
| 3,5,0 | Trapdoor | bottom half, closed |
> **Any wood type**: planks/stairs/trapdoors/slabs can be replaced with any wood variant (oak, spruce, birch, jungle, acacia, dark oak, cherry, etc.), mixed freely across positions. The mod only checks block **type** (a stair is a stair), not the wood species.
> **Lazy setup**: the repo includes a Litematica schematic `docs/耄耋的家.litematic` — load it with the Litematica mod to place the whole structure in one go. (A black candle at `[3,2,0]` in the schematic is optional; the mod doesn't check it.)
### Rules & tips
- **Anchor stair `[4,1,0]`**: the cat teleports to one block above it `[4,2,0]`, sitting on the stair top (not on the trapdoor).
- **Trapdoor facing is free** — the mod ignores trapdoor facing when matching; but **open/closed and half must match the list**.
- **The whole structure can be rotated 90°/180°/270°** — the mod auto-detects all 4 orientations; stair facing just needs to be consistent with the structure's rotation (the mod compares rotated). Trapdoor facing still doesn't matter.
- A cat named Maodie must be within **10 blocks** of the structure; the server scans every 20 ticks and summons the cat once recognized.
- Breaking any part (especially the anchor stair) → releases the cat.
## Server-authoritative architecture
On multiplayer servers, **the server must have this mod installed** (all logic runs server-side); clients need it too for the head-tilt / size boost / hiss / music rendering. In singleplayer, one copy covers both sides automatically.
## Audio
### Built-in audio
The audio files (`laowu2.ogg` / `qiliang.ogg`) are not bundled in the repo — put them in `src/main/resources/assets/laowu_meme/sounds/` if building from source. Must be Ogg Vorbis (MC only supports ogg); convert mp3 with ffmpeg:
```
ffmpeg -i input.mp3 -c:a libvorbis -q:a 4 -ar 44100 -ac 1 output.ogg
```
### Imported audio (hot-swap at runtime)
Open the mod's config screen in-game (press Escape or via the Mods menu after triggering a meme), click **"Open audio folder"** to open `config/laowu_meme/sounds/`. Drop `.ogg` files in there, **reopen the config screen** to see and enable them — they'll join the built-in audio pool for random playback. No restart or F3+T needed.
- Imported audio **must be `.ogg` (Ogg Vorbis)** — MC won't play mp3/wav.
- Have an mp3? Convert online first ,then drop the `.ogg` into the folder.
- Each audio entry can be individually enabled/disabled in the config screen; the state persists to `config/laowu_meme/enabled.properties` across sessions.
## Requirements
- mod menu(fabric)
## Credits
- Cat textures from the **maocraft** resource pack by **一A化三哈** (Bilibili:https://space.bilibili.com/1756604526). His full set of cat coat textures is bundled as the exclusive look for "Maodie"-named cats. Thanks for the permission!
## License
MIT