Меловая доска игрока: рецепт, записи в обычной игре

Отдельный блок necroChalkboardPlayer (модель и надпись сюжетной доски):
крафт с начала игры - краска 2, дерево 8, гвозди 4, волокна 3, кости 2;
писать можно в обычной игре, записи свои у каждой доски; можно подобрать.
Сюжетная necroChalkboard (чертоги) по-прежнему пишется только модом.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-10 14:04:48 +03:00
co-authored by Claude Opus 5.5
parent 197df1d307
commit 3780a69d93
4 changed files with 49 additions and 3 deletions
+2
View File
@@ -372,6 +372,8 @@ necroPalaceBed,blocks,Block,,,,"White Bunk Bed, Made",Stackable metal framed bed
necroPosterAnatomy,blocks,Block,,,,Chart: Structure of the Body,,Schautafel: Aufbau des Körpers,Lámina: estructura del cuerpo,Planche : structure du corps,Tavola: struttura del corpo,図表:身体の構造,도표: 신체의 구조,Plansza: budowa ciała,Prancha: estrutura do corpo,Схема: строение тела,Şema: Vücudun yapısı,图表:身体结构,圖表:身體結構
necroPosterKnife,blocks,Block,,,,Chart: Necromancer's Knife,,Schautafel: Messer des Nekromanten,Lámina: cuchillo del nigromante,Planche : couteau du nécromancien,Tavola: coltello del negromante,図表:ネクロマンサーのナイフ,도표: 강령술사의 단검,Plansza: nóż nekromanty,Prancha: faca do necromante,Схема: нож некроманта,Şema: Nekromantın Bıçağı,图表:亡灵法师之刃,圖表:亡靈法師之刃
necroChalkboard,blocks,Block,,,,Chalkboard,,Kreidetafel,Pizarra,Tableau noir,Lavagna,黒板,칠판,Tablica szkolna,Quadro-negro,Грифельная доска,Kara tahta,黑板,黑板
necroChalkboardPlayer,blocks,Block,,,,Chalkboard (for notes),,Kreidetafel (für Notizen),Pizarra (para notas),Tableau noir (pour notes),Lavagna (per appunti),黒板(メモ用),칠판 (메모용),Tablica (na notatki),Quadro-negro (para anotações),Меловая доска (для записей),Kara tahta (not için),黑板(记事用),黑板(記事用)
necroChalkboardPlayerDesc,blocks,Block,,,,"A blackboard in a bone-trimmed frame. Write on it with chalk: each board keeps its own notes, like a labelled crate.",,"Eine Tafel in einem Rahmen mit Knochenbesatz. Mit Kreide beschreibbar: Jede Tafel behält ihre eigenen Notizen, wie eine beschriftete Kiste.","Una pizarra con marco adornado con huesos. Escribe en ella con tiza: cada pizarra guarda sus propias notas, como una caja rotulada.","Un tableau noir dans un cadre orné d'os. Écris dessus à la craie : chaque tableau garde ses propres notes, comme une caisse étiquetée.","Una lavagna con cornice decorata d'ossa. Scrivici col gesso: ogni lavagna conserva i propri appunti, come una cassa etichettata.",骨で飾られた枠の黒板。チョークで書き込める:ラベル付きの木箱のように、黒板ごとに自分のメモを保持する。,뼈로 장식한 틀의 칠판. 분필로 쓸 수 있다: 이름표 붙은 상자처럼 칠판마다 자기 메모를 간직한다.,"Tablica w ramie zdobionej kośćmi. Pisz na niej kredą: każda tablica przechowuje własne notatki, jak podpisana skrzynia.","Um quadro-negro com moldura enfeitada de ossos. Escreva nele com giz: cada quadro guarda suas próprias anotações, como um caixote etiquetado.","Чёрная доска в раме, отделанной костью. На ней пишут мелом: у каждой доски свои записи, как надписи на ящике.","Kemikle süslenmiş çerçeveli bir kara tahta. Üzerine tebeşirle yazılır: her tahta, etiketli bir sandık gibi kendi notlarını saklar.",骨饰边框的黑板。可以用粉笔书写:每块黑板都保存自己的笔记,就像贴了标签的箱子。,骨飾邊框的黑板。可以用粉筆書寫:每塊黑板都保存自己的筆記,就像貼了標籤的箱子。
necroPalaceBoardRevenge,blocks,Block,,,,Take revenge on the archmage!,,Räche dich am Erzmagier!,¡Véngate del archimago!,Venge-toi de l'archimage !,Vendicati dell'arcimago!,大魔導師に復讐せよ!,대마법사에게 복수하라!,Zemścij się na arcymagu!,Vingue-se do arquimago!,Отомсти архимагу!,Başbüyücüden intikam al!,向大法师复仇!,向大法師復仇!
necroPalaceBoardTide,blocks,Block,,,,Careful! The lunar tide is approaching!,,Vorsicht! Die Mondflut naht!,¡Cuidado! ¡Se acerca la marea lunar!,Attention ! La marée lunaire approche !,Attenzione! Si avvicina la marea lunare!,気をつけろ!月の潮が迫っている!,조심하라! 달의 조수가 다가온다!,Uwaga! Nadchodzi księżycowy przypływ!,Cuidado! A maré lunar se aproxima!,Осторожно! Приближается лунный прилив!,Dikkat! Ay gelgiti yaklaşıyor!,小心!月潮将至!,小心!月潮將至!
necroBookDoor,blocks,Block,,,,Bookshelf Door,,Bücherregaltür,Puerta-estantería,Porte-bibliothèque,Porta-libreria,本棚の扉,책장 문,Drzwi-regał,Porta-estante,Дверь-книжный шкаф,Kitaplık kapı,书架暗门,書架暗門
1 Key File Type UsedInMainMenu NoTranslate KeepLoaded english Context / Alternate Text german spanish french italian japanese koreana polish brazilian russian turkish schinese tchinese
372
373
374
375
376
377
378
379
+19
View File
@@ -330,6 +330,25 @@
<property name="OnlySimpleRotations" value="true"/>
<property name="CanPickup" value="false"/>
</block>
<block name="necroChalkboardPlayer">
<!-- Меловая доска игрока (указание 10.10: «мне нравится использовать её во время игры, делая записи»).
Та же модель и надпись, что у сюжетной necroChalkboard, но крафтится и пишется в обычной игре. Отдельный
блок, чтобы сюжетная доска чертогов (на ней пишет мод, MindPalace.UpdateBoards) осталась неизменяемой.
Записи - TEFeatureSignable: свои у каждой доски, хранятся в чанке, как надписи на ящиках. -->
<property name="Extends" value="necroChalkboard"/>
<property name="CreativeMode" value="Player"/>
<property name="DescriptionKey" value="necroChalkboardPlayerDesc"/>
<property name="Class" value="CompositeTileEntity"/>
<property class="CompositeFeatures">
<property class="TEFeatureSignable">
<property name="FontSize" value="110"/>
<property name="LineCount" value="9"/>
<property name="LineWidth" value="1.68"/>
<property name="LineSpacing" value="1"/>
</property>
</property>
<property name="CanPickup" value="true"/>
</block>
<block name="necroPosterKnife">
<!-- Схема ножа некроманта (09.10.2026): синька в стиле ванильного чертежа пистолета, три вида из Blender
(BlenderWork/necroTomePets/make_knife.py poster). Тот же багет; пользователь повесит сам в чертогах. -->
+9
View File
@@ -518,6 +518,15 @@
<ingredient name="resourceRockSmall" count="20"/>
<ingredient name="resourceWood" count="2"/>
</recipe>
<!-- Меловая доска игрока (10.10): чёрная краска, дерево, гвозди, немного травяных волокон, кости. Краска - обычная
resourcePaint: чёрный краситель modDyeBlack в игре не крафтится (только находка и торговцы). С начала игры. -->
<recipe name="necroChalkboardPlayer" count="1" craft_time="20" tags="packMuleCrafting">
<ingredient name="resourcePaint" count="2"/>
<ingredient name="resourceWood" count="8"/>
<ingredient name="resourceNail" count="4"/>
<ingredient name="resourceYuccaFibers" count="3"/>
<ingredient name="resourceBone" count="2"/>
</recipe>
<recipe name="resourceNecroBlackRoseJuice" count="1" craft_time="10" craft_area="necroMortar">
<ingredient name="resourceNecroBlackRose" count="4"/>
<ingredient name="drinkJarEmpty" count="1"/>
+19 -3
View File
@@ -13,11 +13,27 @@ namespace NecromancerTome
/// </summary>
public static class Chalkboard
{
/// <summary>Сюжетная доска (чертоги, локации): пишет мод или автор префаба.</summary>
public const string BlockName = "necroChalkboard";
/// <summary>Доска игрока (10.10): крафтится, пишется в обычной игре - записи свои у каждой доски.</summary>
public const string PlayerBlockName = "necroChalkboardPlayer";
static string NameOf(TEFeatureSignable _sign)
{
return _sign?.Parent?.TeData?.Block?.GetBlockName();
}
/// <summary>Любая из досок - для материала надписи.</summary>
public static bool Is(TEFeatureSignable _sign)
{
return _sign?.Parent?.TeData?.Block != null && _sign.Parent.TeData.Block.GetBlockName() == BlockName;
string n = NameOf(_sign);
return n == BlockName || n == PlayerBlockName;
}
/// <summary>Сюжетная доска - писать только в редакторе, творческом режиме, отладке.</summary>
public static bool IsLocked(TEFeatureSignable _sign)
{
return NameOf(_sign) == BlockName && !CanWrite();
}
/// <summary>Кто может писать: редактор префабов, творческий режим, отладка.</summary>
@@ -85,7 +101,7 @@ namespace NecromancerTome
public static void Postfix(TEFeatureSignable __instance, ITileEntityFeature _module, ReadOnlySpan<char> _commandName, ref bool __result)
{
if (__result && __instance.Equals(_module) && _commandName.SequenceEqual("edit".AsSpan()) &&
Chalkboard.Is(__instance) && !Chalkboard.CanWrite())
Chalkboard.IsLocked(__instance))
{
__result = false;
}
@@ -97,7 +113,7 @@ namespace NecromancerTome
{
public static void Postfix(TEFeatureSignable __instance, ref string __result)
{
if (Chalkboard.Is(__instance) && !Chalkboard.CanWrite())
if (Chalkboard.IsLocked(__instance))
{
__result = null;
}