diff --git a/Config/Localization.csv b/Config/Localization.csv
index cab02c1..44ddb7a 100644
--- a/Config/Localization.csv
+++ b/Config/Localization.csv
@@ -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ı,书架暗门,書架暗門
diff --git a/Config/blocks.xml b/Config/blocks.xml
index 8a2bffe..bde00bd 100644
--- a/Config/blocks.xml
+++ b/Config/blocks.xml
@@ -330,6 +330,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Config/recipes.xml b/Config/recipes.xml
index 9c59a3d..1fbd811 100644
--- a/Config/recipes.xml
+++ b/Config/recipes.xml
@@ -518,6 +518,15 @@
+
+
+
+
+
+
+
+
diff --git a/HarmonySrc/ChalkboardPatch.cs b/HarmonySrc/ChalkboardPatch.cs
index 8cfdfa2..784f564 100644
--- a/HarmonySrc/ChalkboardPatch.cs
+++ b/HarmonySrc/ChalkboardPatch.cs
@@ -13,11 +13,27 @@ namespace NecromancerTome
///
public static class Chalkboard
{
+ /// Сюжетная доска (чертоги, локации): пишет мод или автор префаба.
public const string BlockName = "necroChalkboard";
+ /// Доска игрока (10.10): крафтится, пишется в обычной игре - записи свои у каждой доски.
+ public const string PlayerBlockName = "necroChalkboardPlayer";
+ static string NameOf(TEFeatureSignable _sign)
+ {
+ return _sign?.Parent?.TeData?.Block?.GetBlockName();
+ }
+
+ /// Любая из досок - для материала надписи.
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;
+ }
+
+ /// Сюжетная доска - писать только в редакторе, творческом режиме, отладке.
+ public static bool IsLocked(TEFeatureSignable _sign)
+ {
+ return NameOf(_sign) == BlockName && !CanWrite();
}
/// Кто может писать: редактор префабов, творческий режим, отладка.
@@ -85,7 +101,7 @@ namespace NecromancerTome
public static void Postfix(TEFeatureSignable __instance, ITileEntityFeature _module, ReadOnlySpan _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;
}