# Bug-Report: Absturz — Blaupause über bestehendem Kabel (WireLayer:102)

- Typ: bug
- Datum: 2026-09-27 (Crash-Log vom 2026-09-16)
- Session: ti9h7q4opspimujts4t1 (Bug-Chat, manuell analysiert)
- Version: ~0.4.1.x
- Melder-Notiz: „wire layer crash beim blaupause positionieren"

## Zusammenfassung
Beim Positionieren einer Blaupause, die Kabel enthält, über einer bereits
verlegten Kachel crasht `WireLayer.AddWire` mit `Tile already exists`.

## Fehler
```
Error: Objects/MapData/WireLayer.lua:102: WireLayer.lua 	 : Tile already exists at 155,51
Objects/MapData/WireLayer.lua:102: in function 'AddWire'
Commands/CreateWire.lua:43: in function 'COMMAND_CreateWire'
Commands/BuildWire.lua:128: in function 'COMMAND_BuildWire'
Objects/BlueprintManager.lua:1134: in function 'BuildFromInventory'
Objects/BlueprintManager.lua:1163: in function 'Update'
```

## Technische Analyse
`AddWire` assertiert hart, dass die Kachel frei ist (Z. 102;
`WallLayer.lua:213` hat dasselbe Muster). Der normale Bau-Pfad verhindert
das über die UI — man kann gar kein Kabel auf eine belegte Kachel setzen.
Der Blaupausen-Pfad `BuildFromInventory` ruft `COMMAND_BuildWire` aber für
jede Wire-Position der Blaupause ohne Vorabkollisionstest.

Fix-Richtung:
- In `BuildFromInventory` (bzw. `COMMAND_BuildWire`) vor `CreateWire`
  `WireLayer.GetTileData(x, y)` prüfen: gleiches Kabel → überspringen;
  anderes Kabel → ersetzen oder laut loggen + überspringen (abhängig davon,
  was der Maschinen-/Wall-Pfad bei belegten Kacheln macht — Verhalten
  angleichen).
- Assert in `WireLayer.AddWire` stehen lassen (by design).
