diff --git a/Assemblies/0Harmony.dll b/1.0/Assemblies/0Harmony.dll similarity index 100% rename from Assemblies/0Harmony.dll rename to 1.0/Assemblies/0Harmony.dll diff --git a/Assemblies/RimWriter.dll b/1.0/Assemblies/RimWriter.dll similarity index 100% rename from Assemblies/RimWriter.dll rename to 1.0/Assemblies/RimWriter.dll diff --git a/Defs/ConceptDefs/RimWriter_Concepts.xml b/1.0/Defs/ConceptDefs/RimWriter_Concepts.xml similarity index 100% rename from Defs/ConceptDefs/RimWriter_Concepts.xml rename to 1.0/Defs/ConceptDefs/RimWriter_Concepts.xml diff --git a/Defs/JobDefs/RimWriter_JobDefs.xml b/1.0/Defs/JobDefs/RimWriter_JobDefs.xml similarity index 100% rename from Defs/JobDefs/RimWriter_JobDefs.xml rename to 1.0/Defs/JobDefs/RimWriter_JobDefs.xml diff --git a/Defs/JoyGiverDefs/RimWriter_JoyGivers.xml b/1.0/Defs/JoyGiverDefs/RimWriter_JoyGivers.xml similarity index 100% rename from Defs/JoyGiverDefs/RimWriter_JoyGivers.xml rename to 1.0/Defs/JoyGiverDefs/RimWriter_JoyGivers.xml diff --git a/Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml b/1.0/Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml similarity index 100% rename from Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml rename to 1.0/Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml diff --git a/Defs/RecipeDefs/RimWriter_BookBinding.xml b/1.0/Defs/RecipeDefs/RimWriter_BookBinding.xml similarity index 100% rename from Defs/RecipeDefs/RimWriter_BookBinding.xml rename to 1.0/Defs/RecipeDefs/RimWriter_BookBinding.xml diff --git a/Defs/RecipeDefs/RimWriter_BurnBooks.xml b/1.0/Defs/RecipeDefs/RimWriter_BurnBooks.xml similarity index 100% rename from Defs/RecipeDefs/RimWriter_BurnBooks.xml rename to 1.0/Defs/RecipeDefs/RimWriter_BurnBooks.xml diff --git a/Defs/RecipeDefs/RimWriter_MaterialCrafting.xml b/1.0/Defs/RecipeDefs/RimWriter_MaterialCrafting.xml similarity index 100% rename from Defs/RecipeDefs/RimWriter_MaterialCrafting.xml rename to 1.0/Defs/RecipeDefs/RimWriter_MaterialCrafting.xml diff --git a/Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml b/1.0/Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml similarity index 100% rename from Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml rename to 1.0/Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml diff --git a/Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml b/1.0/Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml similarity index 100% rename from Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml rename to 1.0/Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml diff --git a/Defs/Rooms/RimWriter_Rooms.xml b/1.0/Defs/Rooms/RimWriter_Rooms.xml similarity index 100% rename from Defs/Rooms/RimWriter_Rooms.xml rename to 1.0/Defs/Rooms/RimWriter_Rooms.xml diff --git a/Defs/RulePackDefs/RimWriter_Rules.xml b/1.0/Defs/RulePackDefs/RimWriter_Rules.xml similarity index 100% rename from Defs/RulePackDefs/RimWriter_Rules.xml rename to 1.0/Defs/RulePackDefs/RimWriter_Rules.xml diff --git a/Defs/SoundDefs/RimWriter_Sounds.xml b/1.0/Defs/SoundDefs/RimWriter_Sounds.xml similarity index 100% rename from Defs/SoundDefs/RimWriter_Sounds.xml rename to 1.0/Defs/SoundDefs/RimWriter_Sounds.xml diff --git a/Defs/ThingCategories/RimWriter_ThingCategories.xml b/1.0/Defs/ThingCategories/RimWriter_ThingCategories.xml similarity index 100% rename from Defs/ThingCategories/RimWriter_ThingCategories.xml rename to 1.0/Defs/ThingCategories/RimWriter_ThingCategories.xml diff --git a/Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml b/1.0/Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml similarity index 100% rename from Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml rename to 1.0/Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml diff --git a/Defs/ThingDefs_Buildings/RimWriter_Buildings.xml b/1.0/Defs/ThingDefs_Buildings/RimWriter_Buildings.xml similarity index 100% rename from Defs/ThingDefs_Buildings/RimWriter_Buildings.xml rename to 1.0/Defs/ThingDefs_Buildings/RimWriter_Buildings.xml diff --git a/Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml b/1.0/Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml similarity index 100% rename from Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml rename to 1.0/Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml diff --git a/Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml b/1.0/Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml similarity index 100% rename from Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml rename to 1.0/Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml diff --git a/Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml b/1.0/Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml similarity index 100% rename from Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml rename to 1.0/Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml diff --git a/Defs/ThingDefs_Item/RimWriter_Books.xml b/1.0/Defs/ThingDefs_Item/RimWriter_Books.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_Books.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_Books.xml diff --git a/Defs/ThingDefs_Item/RimWriter_Journals.xml b/1.0/Defs/ThingDefs_Item/RimWriter_Journals.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_Journals.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_Journals.xml diff --git a/Defs/ThingDefs_Item/RimWriter_Materials.xml b/1.0/Defs/ThingDefs_Item/RimWriter_Materials.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_Materials.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_Materials.xml diff --git a/Defs/ThingDefs_Item/RimWriter_Scrolls.xml b/1.0/Defs/ThingDefs_Item/RimWriter_Scrolls.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_Scrolls.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_Scrolls.xml diff --git a/Defs/ThingDefs_Item/RimWriter_Skillbooks.xml b/1.0/Defs/ThingDefs_Item/RimWriter_Skillbooks.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_Skillbooks.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_Skillbooks.xml diff --git a/Defs/ThingDefs_Item/RimWriter_Tablets.xml b/1.0/Defs/ThingDefs_Item/RimWriter_Tablets.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_Tablets.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_Tablets.xml diff --git a/Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml b/1.0/Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml similarity index 100% rename from Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml rename to 1.0/Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml diff --git a/Defs/ThoughDefs/RimWriter_Thoughts.xml b/1.0/Defs/ThoughDefs/RimWriter_Thoughts.xml similarity index 100% rename from Defs/ThoughDefs/RimWriter_Thoughts.xml rename to 1.0/Defs/ThoughDefs/RimWriter_Thoughts.xml diff --git a/Defs/Tutor/RimWriter_Concepts.xml b/1.0/Defs/Tutor/RimWriter_Concepts.xml similarity index 100% rename from Defs/Tutor/RimWriter_Concepts.xml rename to 1.0/Defs/Tutor/RimWriter_Concepts.xml diff --git a/Defs/WorkGiverDefs/RimWriter_WorkGivers.xml b/1.0/Defs/WorkGiverDefs/RimWriter_WorkGivers.xml similarity index 100% rename from Defs/WorkGiverDefs/RimWriter_WorkGivers.xml rename to 1.0/Defs/WorkGiverDefs/RimWriter_WorkGivers.xml diff --git a/Languages/English/Keyed/RimWriter_Keys.xml b/1.0/Languages/English/Keyed/RimWriter_Keys.xml similarity index 100% rename from Languages/English/Keyed/RimWriter_Keys.xml rename to 1.0/Languages/English/Keyed/RimWriter_Keys.xml diff --git a/Languages/English/Strings/Words/Nouns/Books.txt b/1.0/Languages/English/Strings/Words/Nouns/Books.txt similarity index 100% rename from Languages/English/Strings/Words/Nouns/Books.txt rename to 1.0/Languages/English/Strings/Words/Nouns/Books.txt diff --git a/Languages/English/Strings/Words/Nouns/Journals.txt b/1.0/Languages/English/Strings/Words/Nouns/Journals.txt similarity index 100% rename from Languages/English/Strings/Words/Nouns/Journals.txt rename to 1.0/Languages/English/Strings/Words/Nouns/Journals.txt diff --git a/Languages/English/Strings/Words/Nouns/Scrolls.txt b/1.0/Languages/English/Strings/Words/Nouns/Scrolls.txt similarity index 100% rename from Languages/English/Strings/Words/Nouns/Scrolls.txt rename to 1.0/Languages/English/Strings/Words/Nouns/Scrolls.txt diff --git a/Languages/English/Strings/Words/Nouns/Tablets.txt b/1.0/Languages/English/Strings/Words/Nouns/Tablets.txt similarity index 100% rename from Languages/English/Strings/Words/Nouns/Tablets.txt rename to 1.0/Languages/English/Strings/Words/Nouns/Tablets.txt diff --git a/1.1/Assemblies/0Harmony.dll b/1.1/Assemblies/0Harmony.dll new file mode 100644 index 0000000..659f3a9 Binary files /dev/null and b/1.1/Assemblies/0Harmony.dll differ diff --git a/1.1/Assemblies/RimWriter.dll b/1.1/Assemblies/RimWriter.dll new file mode 100644 index 0000000..e17aa39 Binary files /dev/null and b/1.1/Assemblies/RimWriter.dll differ diff --git a/1.1/Defs/ConceptDefs/RimWriter_Concepts.xml b/1.1/Defs/ConceptDefs/RimWriter_Concepts.xml new file mode 100644 index 0000000..a646a80 --- /dev/null +++ b/1.1/Defs/ConceptDefs/RimWriter_Concepts.xml @@ -0,0 +1,27 @@ + + + + + RimWriter_PaperMaking + + 50 + Paper and parchment can be created at the paper making table. Paper is crafted from logs, and parchment is crafted from leather. Both can be used as materials to make books. + true + + + + + RimWriter_BookBurning + + 50 + Books and scrolls can make your colonists entertained, but can also lead to harmful ideas and attempts to overthrow the bourgeoisie.\n\nIf you want to keep down the proletariat in your colony, or if you enjoy reenacting Fahrenheit 451, you have the option of burning these books at a campfire or electric crematorium. + true + +
  • DesignationCategoryButton-Temperature-Closed
  • +
  • Designator-Build-Campfire
  • +
  • ITab-Bills-Closed
  • +
    +
    + + +
    diff --git a/1.1/Defs/JobDefs/RimWriter_JobDefs.xml b/1.1/Defs/JobDefs/RimWriter_JobDefs.xml new file mode 100644 index 0000000..24fd342 --- /dev/null +++ b/1.1/Defs/JobDefs/RimWriter_JobDefs.xml @@ -0,0 +1,46 @@ + + + + + RimWriter_ReadABook + RimWriter.JobDriver_ReadABook + reading. + 4000 + 1 + 1 + Intellectual + 0.002 + Jecrell_Writing + + + + RimWriter_ReturnBook + RimWriter.JobDriver_ReturnBook + returning TargetA. + + + + RimWriter_FreeWrite + RimWriter.JobDriver_FreeWrite + practice writing. + 4000 + 1 + 1 + Intellectual + 0.002 + Jecrell_Writing + + + + RimWriter_AutoWrite + JobDriver_SitFacingBuilding + writing automatically. + 4000 + 1 + 1 + Intellectual + 0.002 + Jecrell_Writing + + + \ No newline at end of file diff --git a/1.1/Defs/JoyGiverDefs/RimWriter_JoyGivers.xml b/1.1/Defs/JoyGiverDefs/RimWriter_JoyGivers.xml new file mode 100644 index 0000000..d70d82e --- /dev/null +++ b/1.1/Defs/JoyGiverDefs/RimWriter_JoyGivers.xml @@ -0,0 +1,51 @@ + + + + + RimWriter_ReadABookJG + RimWriter.JoyGiver_ReadABook + 1.5 + +
  • Jecrell_Bookcase
  • +
    + RimWriter_ReadABook + Jecrell_Writing + +
  • Sight
  • +
  • Manipulation
  • +
    +
    + + + RimWriter_FreeWriteJG + JoyGiver_InteractBuildingSitAdjacent + 1.5 + +
  • RimWriter_TableWriting
  • +
  • RimWriter_TableTypewriter
  • +
    + RimWriter_FreeWrite + Jecrell_Writing + +
  • Sight
  • +
  • Manipulation
  • +
    +
    + + + RimWriter_AutoWriteJG + JoyGiver_InteractBuildingSitAdjacent + 1.5 + +
  • RimWriter_TableWriting
  • +
  • RimWriter_TableTypewriter
  • +
    + RimWriter_AutoWrite + Jecrell_Writing + +
  • Sight
  • +
  • Manipulation
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml b/1.1/Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml new file mode 100644 index 0000000..b02f5e9 --- /dev/null +++ b/1.1/Defs/JoyKindDefs/RimWriter_JoyKindDefs.xml @@ -0,0 +1,14 @@ + + + + + Jecrell_Books + + + + + Jecrell_Writing + + + + \ No newline at end of file diff --git a/1.1/Defs/RecipeDefs/RimWriter_BookBinding.xml b/1.1/Defs/RecipeDefs/RimWriter_BookBinding.xml new file mode 100644 index 0000000..730e1b0 --- /dev/null +++ b/1.1/Defs/RecipeDefs/RimWriter_BookBinding.xml @@ -0,0 +1,113 @@ + + + + + RimWriter_MakeJournalAtTypewriter + + Makes a journal at a typewriter by typing out flattened stationery such as paper or parchment and binding together the pieces.\nJournals are usually concrete accounts of events or research, unlike books which can often have elements of fiction. + RimWriter_SoundManualTypewriter + Typing a journal. + + 1 + + + + + + RimWriter_MakeBookAtTypewriter + + Makes a book at a typewriter by typing out on flattened stationery such as paper or parchment and binding together the pieces. + RimWriter_SoundManualTypewriter + Typing a book. + 10000 + +
  • RimWriter_TableTypewriter
  • +
    + + 1 + +
    + + + RimWriter_MakeJournalAtTable + + Makes a journal at a writing table by inking out flattened stationery such as paper or parchment and binding together the pieces.\nJournals are usually concrete accounts of events or research, unlike books which can often have elements of fiction. + Making a journal. + + 1 + + + + + + RimWriter_MakeBookAtTable + + Makes a book at a writing table by inking out on flattened stationery such as paper or parchment and binding together the pieces. + Making a book. + 15000 + +
  • RimWriter_TableWriting
  • +
    + + 1 + +
    + + + + RimWriter_MakeJournalByHand + + Makes a journal by hand at a crafting spot by writing out flattened stationery such as paper or parchment and binding together the pieces.\nJournals are usually concrete accounts of events or research, unlike books which can often have elements of fiction. + Making a journal by hand. + RimWriter_TechHandWriting + + 1 + + + + + RimWriter_MakeBook + + Makes a book by hand at a crafting spot by writing out flattened stationery such as paper or parchment and binding together the pieces. + Making a book by hand. + 20000 + GeneralLaborSpeed + Artistic + UnfinishedWriting + RimWriter_SoundManualPencil + Tailor + true + RimWriter_TechHandWriting + +
  • CraftingSpot
  • +
    + + 1 + + +
  • + + +
  • Leathers
  • + + + 10 + +
  • + + +
  • RimWriter_BookMaterials
  • + + + 100 + +
    + + +
  • RimWriter_BookMaterials
  • +
  • Leathers
  • +
    +
    +
    + +
    diff --git a/1.1/Defs/RecipeDefs/RimWriter_BurnBooks.xml b/1.1/Defs/RecipeDefs/RimWriter_BurnBooks.xml new file mode 100644 index 0000000..5e9e16d --- /dev/null +++ b/1.1/Defs/RecipeDefs/RimWriter_BurnBooks.xml @@ -0,0 +1,60 @@ + + + + + RimWriter_BurnBooks + + Burn unwanted books to completely destroy them without any mess. + Burning books. + 60 + GeneralLaborSpeed + Hauling + Cremate + Recipe_Cremate + RimWriter_BookBurning + +
  • + + +
  • RimWriter_Books
  • + + + 1 + +
    + + +
  • RimWriter_Books
  • +
    +
    +
    + + + RimWriter_BurnScrolls + + Burn unwanted scrolls to completely destroy them without any mess. + Burning scrolls. + 60 + GeneralLaborSpeed + Hauling + Cremate + Recipe_Cremate + RimWriter_BookBurning + +
  • + + +
  • RimWriter_Scrolls
  • + + + 1 + +
    + + +
  • RimWriter_Scrolls
  • +
    +
    +
    + +
    diff --git a/1.1/Defs/RecipeDefs/RimWriter_MaterialCrafting.xml b/1.1/Defs/RecipeDefs/RimWriter_MaterialCrafting.xml new file mode 100644 index 0000000..9966ddd --- /dev/null +++ b/1.1/Defs/RecipeDefs/RimWriter_MaterialCrafting.xml @@ -0,0 +1,135 @@ + + + + + RimWriter_MakePageFast + 1200 + +
  • RimWriter_PapermakingBenchElectric
  • +
    +
    + + + RimWriter_MakePage + + Makes around one hundred pages from a few logs of wood. + Making pages. + 3500 + GeneralLaborSpeed + Artistic + UnfinishedWriting + Recipe_Tailor + Tailor + true + +
  • RimWriter_PapermakingBench
  • +
    + + 100 + + +
  • + + +
  • WoodLog
  • + + + 15 + +
    + + +
  • WoodLog
  • +
    +
    +
    + + + RimWriter_MakeParchmentFast + 1200 + +
  • RimWriter_PapermakingBenchElectric
  • +
    +
    + + + RimWriter_MakeParchment + + Makes around one hundred parchments from leather. + Making parchment. + 3500 + GeneralLaborSpeed + Artistic + UnfinishedWriting + Recipe_Tailor + Tailor + true + +
  • RimWriter_PapermakingBench
  • +
    + + 100 + + +
  • + + +
  • Leathers
  • + + + 15 + +
    + + +
  • Leathers
  • +
    +
    +
    + + + + RimWriter_MakeClothPaperFast + 1200 + +
  • RimWriter_PapermakingBenchElectric
  • +
    +
    + + + + RimWriter_MakeClothPaper + + Makes around one hundred cloth papers from various types of fabric. + Making cloth paper. + 3500 + GeneralLaborSpeed + Artistic + UnfinishedWriting + Recipe_Tailor + Tailor + true + +
  • RimWriter_PapermakingBench
  • +
    + + 100 + + +
  • + + +
  • Cloth
  • + + + 5 + +
    + + +
  • Cloth
  • +
    +
    +
    + +
    diff --git a/1.1/Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml b/1.1/Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml new file mode 100644 index 0000000..1cf02fb --- /dev/null +++ b/1.1/Defs/ResearchProjectDefs/RimWriter_ResearchProjects.xml @@ -0,0 +1,91 @@ + + + + + + + + RimWriter_TechPrimitiveWriting + + Allows your colony to chisel out stony shelves and create tablets at crafting spots that retain stories of your colony. Parting the red sea is not included. + 50 + Neolithic + +
  • ClassicStart
  • +
    + 0 + 1.5 + RimWriter_ResearchTab +
    + + + RimWriter_TechSimpleWriting + + Allows your colony to scribe texts on leather scrolls at crafting spots that retain stories of your colony. + 250 + Neolithic + +
  • RimWriter_TechPrimitiveWriting
  • +
    + +
  • ClassicStart
  • +
    + 1 + 1.5 + RimWriter_ResearchTab +
    + + + RimWriter_TechBookshelves + + Allows your colony to construct shelves for scrolls, journals, and books. + 50 + Neolithic + +
  • RimWriter_TechPrimitiveWriting
  • +
  • ComplexFurniture
  • +
    + 1 + 0.5 + RimWriter_ResearchTab +
    + + + + + RimWriter_TechHandWriting + + Allows your colony to create pages at paper tables and write handwritten pages and simple books at a writer's table or crafting spot. + 500 + Medieval + +
  • RimWriter_TechSimpleWriting
  • +
    + 2 + 1.5 + RimWriter_ResearchTab +
    + + + + + RimWriter_TechTypewriting + + Allows you to construct a writing table with a mechanical typewriter to provide a joyful creative outlet for your colonists. + 900 + +
  • RimWriter_TechHandWriting
  • +
    + Industrial + 3 + 1.5 + RimWriter_ResearchTab +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml b/1.1/Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml new file mode 100644 index 0000000..6df2be2 --- /dev/null +++ b/1.1/Defs/ResearchProjectDefs/RimWriter_ResearchTab.xml @@ -0,0 +1,9 @@ + + + + + RimWriter_ResearchTab + + + + \ No newline at end of file diff --git a/1.1/Defs/Rooms/RimWriter_Rooms.xml b/1.1/Defs/Rooms/RimWriter_Rooms.xml new file mode 100644 index 0000000..36d747b --- /dev/null +++ b/1.1/Defs/Rooms/RimWriter_Rooms.xml @@ -0,0 +1,17 @@ + + + + + RimWriter_Library + + RimWriter.RoomRoleWorker_Library + +
  • Beauty
  • +
  • Cleanliness
  • +
  • Wealth
  • +
  • Space
  • +
  • Impressiveness
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/RulePackDefs/RimWriter_Rules.xml b/1.1/Defs/RulePackDefs/RimWriter_Rules.xml new file mode 100644 index 0000000..9c5a3a7 --- /dev/null +++ b/1.1/Defs/RulePackDefs/RimWriter_Rules.xml @@ -0,0 +1,555 @@ + + + + RimWriterNameUtility + + +
  • BookTitle->Words/Nouns/Books
  • +
  • JournalTitle->Words/Nouns/Journals
  • +
  • ScrollTitle->Words/Nouns/Scrolls
  • +
  • TabletTitle->Words/Nouns/Tablets
  • +
    + +
  • book_name_numeric->[maybe_letter][Digit][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][Digit][Digit][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][Digit][Digit][Digit][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][RomanNumeral][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][RomanNumeral][Digit][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][Digit][RomanNumeral][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][Digit][RomanNumeral][Digit][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][RomanNumeral][Digit][RomanNumeral][maybe_letter]
  • +
  • book_name_numeric->[maybe_letter][RomanNumeral][Digit][Digit][RomanNumeral][maybe_letter]
  • + +
  • maybe_letter(p=8)->
  • +
  • maybe_letter->[Letter]
  • +
  • maybe_letter->[Letter][Letter]
  • + +
  • maybe_a(p=3)->
  • +
  • maybe_a->a
  • + +
  • maybe_adjective(p=5)->
  • +
  • maybe_adjective(p=2)->[AdjectiveAngsty]
  • +
  • maybe_adjective->[AdjectiveBadass]
  • +
  • maybe_adjective->[Color]
  • +
    +
    +
    + + + RimWriterNamerBook + +
  • RimWriterNameUtility
  • +
    + + + +
  • r_art_name(p=4)->[ConceptAny]
  • +
  • r_art_name(p=4)->[BookTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[BookTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[maybe_a] [maybe_adjective] [BookTitle]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [ConceptAny]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [TerrainFeature]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Vegetable]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Game]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Animal]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Gore]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [NaturalObject]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [PersonFamily]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Enemy]
  • + +
  • r_art_name(p=6)->[ANYPAWN_nameIndef]'s [BookTitle]
  • +
  • r_art_name(p=3)->[maybe_a] [ANYPAWN_nameIndef] [Trans] [Color]
  • +
  • r_art_name(p=3)->[ANYPAWN_nameIndef]'s [PersonalCharacteristic]
  • +
  • r_art_name(p=3)->[PersonalCharacteristic] of [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[ConceptAny] [Trans] [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[maybe_a] [BookTitle] [Trans] [ANYPAWN_nameIndef]
  • +
    +
    +
    + + + RimWriterNamerScroll + +
  • RimWriterNameUtility
  • +
    + + + +
  • r_art_name(p=4)->[ConceptAny]
  • +
  • r_art_name(p=4)->[ScrollTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[ScrollTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[maybe_a] [maybe_adjective] [ScrollTitle]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [ConceptAny]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [TerrainFeature]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Vegetable]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Game]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Animal]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Gore]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [NaturalObject]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [PersonFamily]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Enemy]
  • + +
  • r_art_name(p=6)->[ANYPAWN_nameIndef]'s [ScrollTitle]
  • +
  • r_art_name(p=3)->[maybe_a] [ANYPAWN_nameIndef] [Trans] [Color]
  • +
  • r_art_name(p=3)->[ANYPAWN_nameIndef]'s [PersonalCharacteristic]
  • +
  • r_art_name(p=3)->[PersonalCharacteristic] of [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[ConceptAny] [Trans] [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[maybe_a] [ScrollTitle] [Trans] [ANYPAWN_nameIndef]
  • +
    +
    +
    + + + RimWriterNamerTablet + +
  • RimWriterNameUtility
  • +
    + + + +
  • r_art_name(p=4)->[ConceptAny]
  • +
  • r_art_name(p=4)->[TabletTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[TabletTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[maybe_a] [maybe_adjective] [TabletTitle]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [ConceptAny]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [TerrainFeature]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Vegetable]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Game]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Animal]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Gore]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [NaturalObject]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [PersonFamily]
  • +
  • r_art_name->[maybe_a] [maybe_adjective] [Enemy]
  • + +
  • r_art_name(p=6)->[ANYPAWN_nameIndef]'s [TabletTitle]
  • +
  • r_art_name(p=3)->[maybe_a] [ANYPAWN_nameIndef] [Trans] [Color]
  • +
  • r_art_name(p=3)->[ANYPAWN_nameIndef]'s [PersonalCharacteristic]
  • +
  • r_art_name(p=3)->[PersonalCharacteristic] of [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[ConceptAny] [Trans] [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[maybe_a] [TabletTitle] [Trans] [ANYPAWN_nameIndef]
  • +
    +
    +
    + + + RimWriterNamerJournal + +
  • RimWriterNameUtility
  • +
    + + + +
  • r_art_name(p=4)->[JournalTitle] [Trans] [ConceptAny]
  • +
  • r_art_name(p=4)->[maybe_a] [maybe_adjective] [JournalTitle]
  • + +
  • r_art_name(p=2)->[JournalTitle] [Trans] [ConceptAny] [journal_volume]
  • +
  • r_art_name->[book_name_numeric] [Trans] [ANYPAWN_nameIndef]
  • + +
  • r_art_name(p=6)->[ANYPAWN_nameIndef]'s [JournalTitle]
  • +
  • r_art_name(p=3)->[maybe_a] [ANYPAWN_nameIndef] [Trans] [Color]
  • +
  • r_art_name(p=3)->[ANYPAWN_nameIndef]'s [PersonalCharacteristic] [JournalTitle]
  • +
  • r_art_name(p=3)->[ConceptAny] [Trans] [ANYPAWN_nameIndef]
  • +
  • r_art_name(p=3)->[maybe_a] [JournalTitle] [Trans] [ANYPAWN_nameIndef]
  • +
  • journal_volume->Vol. [book_name_numeric]
  • +
  • journal_volume->[book_name_numeric] Edition
  • +
    +
    +
    + + + RimWriterNamerWrittenBase + + +
  • book->book
  • +
  • book->novel
  • +
  • book->short story
  • +
  • book->tome
  • +
  • written->written
  • +
  • written->typed
  • +
  • journal->journal
  • +
  • journal->diary
  • +
  • journal->memoir
  • +
  • journal->log
  • +
  • holds->holds
  • +
  • holds->contains
  • +
  • holds->involves
  • +
  • holds->consists of
  • +
  • tells->tells of
  • +
  • tells->retells about
  • +
  • tells->discloses about
  • +
  • tells->explains about
  • +
  • tells->mentions
  • +
  • tells->reveals
  • +
  • tells->divulges
  • +
  • tells->makes known
  • +
  • text->text
  • +
    +
    +
    + + + + RimWriterArtDescription_Book + +
  • RimWriterNamerWrittenBase
  • +
  • RimWriterNameUtility
  • +
  • RimWriterArtDescriptionUtility_Global
  • +
    + + +
  • physical_description_root(p=500)->This [BookTitle] [tells] [image]. [desc_sentence_group]
  • +
  • physical_description_root(p=500)->This [BookTitle] [holds] a [text] of [image]. [desc_sentence_group]
  • +
  • physical_description_root(p=500)->In this [BookTitle] is a [text] of [image]. [desc_sentence_group].
  • +
    +
    +
    + + + RimWriterArtDescription_Journal + +
  • RimWriterNamerWrittenBase
  • +
  • RimWriterNameUtility
  • +
  • RimWriterArtDescriptionUtility_Journal
  • +
    + + +
  • physical_description_root(p=500)->This [JournalTitle] [tells] [image]. [desc_sentence_group]
  • +
  • physical_description_root(p=500)->This [JournalTitle] [holds] a [text] of [image]. [desc_sentence_group]
  • +
  • physical_description_root(p=500)->This [JournalTitle] is a [text] of [image]. [desc_sentence_group]
  • +
    +
    +
    + + + RimWriterArtDescription_Guide + +
  • RimWriterNamerWrittenBase
  • +
  • RimWriterNameUtility
  • +
    + + +
  • physical_description_root(p=500)->This skillbook [lays_out] some [simple] rules. [rules_sentence_group].
  • +
  • rules_sentence_group->[rule_one]. [exp] [rule_two]. [exp] [rule_three]
  • +
  • rule_one->The first lesson [teaches_to] [rule]
  • +
  • rule_two->The next lesson [teaches_to] [rule]
  • +
  • rule_two->In the following chapter, it [teaches_to] [rule]
  • +
  • rule_two->After that, it [teaches_to] [rule]
  • +
  • rule_three->And the most important lesson [teaches_to] [rule]
  • +
  • exp(p=3)->.
  • +
  • exp->The logic is [hard_to_understand].
  • +
  • exp->The reasoning is [hard_to_understand].
  • +
  • exp->The lesson is [hard_to_understand].
  • +
  • exp->The chapter is [hard_to_understand].
  • +
  • hard_to_understand->hard to understand
  • +
  • hard_to_understand->easily understood
  • +
  • hard_to_understand->difficult to grasp
  • +
  • hard_to_understand->incoherent at best
  • +
  • hard_to_understand->explained with stick figures
  • +
  • hard_to_understand->demonstrated with flowcharts
  • +
  • hard_to_understand->explained using cartoons
  • +
  • hard_to_understand->full of spelling mistakes
  • +
  • simple->simple
  • +
  • simple->easy
  • +
  • simple->tough
  • +
  • simple->complicated
  • +
  • lays_out->lays out
  • +
  • lays_out->establishes
  • +
  • lays_out->sets the foundation for
  • +
  • lays_out->contains
  • +
  • teaches->teaches
  • +
  • teaches->instructs
  • +
  • teaches->recommends
  • +
  • teaches->encourages
  • +
  • teaches->cautions
  • +
  • teaches_to(p=0.5)->[teaches] to
  • +
  • teaches_to->[teaches] [students] to
  • +
  • students->students
  • +
  • students->one
  • +
  • students->readers
  • +
  • rule->never trust a [Animal][situation]
  • +
  • rule->never become a [PersonJob]
  • +
  • rule->never trust a [Character][situation]
  • +
  • rule->put faith into [PersonalCharacteristic][situation]
  • +
  • rule->put faith into one's [Bodypart][situation]
  • +
  • rule->follow the path of [ConceptBadass][situation]
  • +
  • rule->always have a [Weapon] nearby[situation]
  • +
  • rule->always have a [Vegetable] nearby[situation]
  • +
  • rule->understand that [NaturalObject]s are always [AdjectiveAny]
  • +
  • rule->breathe deeply[situation]
  • +
  • situation(p=2)->
  • +
  • situation-> when [surrounded_by] [enimal_adj] [enimal]s
  • +
  • situation-> when encountering [ConceptAngsty]
  • +
  • situation-> when between a [Character] and a [Vegetable]
  • +
  • situation-> when in a [TerrainFeature]
  • +
  • situation-> when playing [Game]
  • +
  • enimal->[Animal]
  • +
  • enimal->[Enemy]
  • +
  • enimal_adj->[Quantity_adjphrase]
  • +
  • enimal_adj->[AdjectiveAny]
  • +
  • surrounded_by->surrounded by
  • +
  • surrounded_by->trapped with
  • +
  • surrounded_by->sneaking behind
  • +
  • surrounded_by->hiding underneath
  • +
    +
    +
    + + + RimWriterArtDescriptionUtility_Global + +
  • RimWriterNamerWrittenBase
  • +
    + + + + + +
  • artextra_clause(p=500)->the [text] lovingly details [subimageplural]
  • +
  • artextra_clause(p=500)->the author of the [text] focuses on [subimageplural]
  • +
  • artextra_clause(p=500)->there is [subimagesingle] that [takes_part_in] [book_trope]
  • +
  • artextra_clause(p=500)->the characters are in front of [subimageany]
  • +
  • artextra_clause(p=500)->the ending of the [text] [book_endings_with] [subimageany]
  • +
  • artextra_clause(p=500)->the ending of the [text] [book_endings]
  • + +
  • artextra_clause(p=500)->the [text] takes place in the middle of a [Community]
  • +
  • artextra_clause(p=500)->the [text] takes place on the outskirts of a [Community]
  • +
  • artextra_clause(p=500)->the [text] takes place inside a [Community] built near a [TerrainFeature]
  • + +
  • artextra_clause(p=500)->a [Character] [takes_part_in] [book_trope]
  • +
  • artextra_clause(p=500)->a [Character] accidentally [takes_part_in] [book_trope]
  • +
  • artextra_clause(p=500)->a [PAWN_adj] [Character] [takes_part_in] [book_trope]
  • +
  • artextra_clause(p=500)->[Quantity_adjphrase] [Character]s are involved with [book_trope]
  • +
  • artextra_clause(p=500)->[Quantity_adjphrase] [PAWN_adj] [Character]s appear in [book_trope]
  • +
  • artextra_clause(p=500)->a [Animal] [takes_part_in] [book_trope]
  • + +
  • book_endings->has a [book_ending_adj] ending
  • +
  • book_endings->ends with a big party
  • +
  • book_endings->has a [book_ending_adj] ending where everybody lives
  • +
  • book_endings->has a [book_ending_adj] ending where everybody dies
  • +
  • book_endings->ends with everybody going out for [book_food]
  • +
  • book_endings->has a [book_ending_adj] conclusion
  • +
  • book_endings->revealed it was all just a dream
  • +
  • book_endings->has a bittersweet ending
  • +
  • book_endings->ties up all the loose ends... or does it?
  • + +
  • book_ending_adj->happy
  • +
  • book_ending_adj->sad
  • +
  • book_ending_adj->thrilling
  • +
  • book_ending_adj->shocking
  • +
  • book_ending_adj->twist
  • + +
  • book_food->tacos
  • +
  • book_food->shawarma
  • +
  • book_food->hamburgers
  • +
  • book_food->barbeque
  • +
  • book_food->veggie food
  • + +
  • book_endings_with->has a happy ending with
  • +
  • book_endings_with->has a thrilling conclusion with
  • +
  • book_endings_with->has a shocking ending with
  • +
  • book_endings_with->has a a twist at the end with
  • + + +
  • takes_part_in(p=500)->takes part in
  • +
  • takes_part_in(p=500)->is involved with
  • +
  • takes_part_in(p=500)->is forced into
  • + +
  • idles(p=500)->appears
  • +
  • idles(p=500)->is shown
  • +
  • idles(p=500)->fades in
  • + +
  • book_trope(p=500)->a love triangle with a [Character] and a [Character]
  • +
  • book_trope(p=500)->a plot to assassinate a [Character]
  • +
  • book_trope(p=500)->time travelling to a future where [ConceptAny] no longer exists
  • +
  • book_trope(p=500)->being stranded on a [TerrainFeature] with a [Character]
  • +
  • book_trope(p=500)->teaching [Animal]s about [ConceptAny]
  • +
  • book_trope(p=500)->spending the night in a room with a [Character] and a single bed to share
  • +
  • book_trope(p=500)->a curse that can only be cured by a kiss of [ConceptAny]
  • +
  • book_trope(p=500)->kidnapping a [Character] for [ConceptAny]
  • +
  • book_trope(p=500)->an uncompromising situation, but is suddenly saved by [book_deusex]
  • +
  • book_trope(p=500)->a life or death situation
  • +
  • book_trope(p=500)->a cult of [ConceptAny]
  • +
  • book_trope(p=500)->saving the world
  • +
  • book_trope(p=500)->a conspiracy
  • +
  • book_trope(p=500)->running away with a [Character]
  • + +
  • book_deusex->[Animal]
  • +
  • book_deusex->[Character]
  • + + +
  • style_clause(p=504)->the work [symbolizes] [ConceptAny]
  • +
  • artextra_clause(p=500)->[subimagesingle] [book_trope] [symbolizes] [ConceptAny]
  • +
  • style_clause(p=500)->the work is infused with the idea of [ConceptAny] and is done in a [artstyle_adj] style
  • +
  • style_clause(p=500)->the work is executed in a [artstyle_adj] style
  • +
  • style_clause(p=500)->the work has a [artstyle_adj] feeling and a [composition] structure
  • +
  • style_clause(p=500)->the overall composition is [composition]
  • +
  • style_clause(p=500)->the style is [artstyle_adj] with [artstyle_adj] elements
  • +
  • style_clause(p=500)->the [text] somehow expresses both [ConceptAny] and [ConceptAny]
  • +
  • style_clause(p=500)->the [text] contrasts [ConceptAny] with [ConceptAny]
  • +
  • style_clause(p=500)->the [composition] structure of the [text] almost conflicts with its [artstyle_adj] style
  • + +
  • symbolizes(p=500)->symbolizes
  • +
  • symbolizes(p=500)->seems to symbolize
  • +
  • symbolizes(p=500)->represents
  • +
  • symbolizes(p=500)->seems to represent
  • +
  • symbolizes(p=500)->seems to express
  • +
  • symbolizes(p=500)->reminds the reader of
  • +
  • symbolizes(p=500)->conveys the emotions of
  • +
  • symbolizes(p=500)->makes the reader think of
  • +
  • symbolizes(p=500)->represents the authors's
  • +
  • symbolizes(p=500)->suggests the concept of
  • + +
  • depicts(p=500)->depicts
  • +
  • depicts(p=500)->shows
  • +
  • depicts(p=500)->portrays
  • +
  • depicts(p=500)->resembles
  • +
  • depicts(p=500)->illustrates
  • +
  • depicts(p=500)->represents
  • + +
  • depiction(p=500)->depiction
  • +
  • depiction(p=500)->[text]
  • +
  • depiction(p=500)->portrayal
  • +
  • depiction(p=500)->representation
  • +
  • depiction(p=500)->writing
  • +
  • depiction(p=500)->work
  • + +
  • composition(p=500)->descriptive
  • +
  • composition(p=500)->expository
  • +
  • composition(p=500)->narrative
  • +
  • composition(p=500)->unbalanced
  • +
  • composition(p=500)->well-balanced
  • +
  • composition(p=500)->dynamic
  • +
  • composition(p=500)->persuasive
  • +
  • composition(p=500)->dry
  • +
  • composition(p=500)->focused
  • + +
  • artstyle_adj(p=500)->unoriginal
  • +
  • artstyle_adj(p=500)->simple
  • +
  • artstyle_adj(p=500)->complex and realistic
  • +
  • artstyle_adj(p=500)->surrealistic
  • +
  • artstyle_adj(p=500)->classical
  • +
  • artstyle_adj(p=500)->modern
  • +
  • artstyle_adj(p=500)->symbolic
  • +
  • artstyle_adj(p=500)->amateurish yet inviting
  • +
  • artstyle_adj(p=500)->Dickensian
  • +
  • artstyle_adj(p=500)->Jane Austen-esque
  • +
  • artstyle_adj(p=500)->expressionistic
  • +
  • artstyle_adj(p=500)->Victorian
  • +
  • artstyle_adj(p=500)->Orwellian
  • +
  • artstyle_adj(p=500)->Kafkaesque
  • +
  • artstyle_adj(p=500)->Gatsbyian
  • +
  • artstyle_adj(p=500)->violent
  • +
  • artstyle_adj(p=500)->abstract
  • +
  • artstyle_adj(p=500)->hyper-realistic
  • +
  • artstyle_adj(p=500)->pulp
  • +
  • artstyle_adj(p=500)->minimalistic
  • +
  • artstyle_adj(p=500)->comic
  • +
  • artstyle_adj(p=500)->purist
  • +
  • artstyle_adj(p=500)->romantic
  • +
  • artstyle_adj(p=500)->erotic
  • +
  • artstyle_adj(p=500)->sensual
  • +
  • artstyle_adj(p=500)->heartfelt
  • + +
    +
    +
    + + + + RimWriterArtDescriptionUtility_Journal + +
  • RimWriterNamerWrittenBase
  • +
    + + + + + +
  • artextra_clause(p=500)->the [text] lovingly details [subimageplural]
  • +
  • artextra_clause(p=500)->the author of the [text] focuses on [subimageplural]
  • +
  • artextra_clause(p=500)->the characters are in front of [subimageany]
  • + +
  • artextra_clause(p=500)->the [text] takes place in the middle of a [Community]
  • +
  • artextra_clause(p=500)->the [text] takes place on the outskirts of a [Community]
  • +
  • artextra_clause(p=500)->the [text] takes place inside a [Community] built near a [TerrainFeature]
  • + + +
  • style_clause(p=504)->the work [symbolizes] [ConceptAny]
  • +
  • artextra_clause(p=500)->[subimagesingle] [book_trope] [symbolizes] [ConceptAny]
  • +
  • style_clause(p=500)->the work is infused with the idea of [ConceptAny] and is done in a [artstyle_adj] style
  • +
  • style_clause(p=500)->the work is executed in a [artstyle_adj] style
  • +
  • style_clause(p=500)->the work has a [artstyle_adj] feeling and a [composition] structure
  • +
  • style_clause(p=500)->the overall composition is [composition]
  • +
  • style_clause(p=500)->the style is [artstyle_adj] with [artstyle_adj] elements
  • +
  • style_clause(p=500)->the [text] somehow expresses both [ConceptAny] and [ConceptAny]
  • +
  • style_clause(p=500)->the [text] contrasts [ConceptAny] with [ConceptAny]
  • +
  • style_clause(p=500)->the [composition] structure of the [text] almost conflicts with its [artstyle_adj] style
  • + +
  • symbolizes(p=500)->symbolizes
  • +
  • symbolizes(p=500)->seems to symbolize
  • +
  • symbolizes(p=500)->represents
  • +
  • symbolizes(p=500)->seems to represent
  • +
  • symbolizes(p=500)->seems to express
  • +
  • symbolizes(p=500)->reminds the reader of
  • +
  • symbolizes(p=500)->conveys the emotions of
  • +
  • symbolizes(p=500)->makes the reader think of
  • +
  • symbolizes(p=500)->represents the authors's
  • +
  • symbolizes(p=500)->suggests the concept of
  • + +
  • depicts(p=500)->depicts
  • +
  • depicts(p=500)->shows
  • +
  • depicts(p=500)->portrays
  • +
  • depicts(p=500)->resembles
  • +
  • depicts(p=500)->illustrates
  • +
  • depicts(p=500)->represents
  • + +
  • depiction(p=500)->depiction
  • +
  • depiction(p=500)->[text]
  • +
  • depiction(p=500)->portrayal
  • +
  • depiction(p=500)->representation
  • +
  • depiction(p=500)->writing
  • +
  • depiction(p=500)->work
  • + +
  • composition(p=500)->descriptive
  • +
  • composition(p=500)->expository
  • +
  • composition(p=500)->narrative
  • +
  • composition(p=500)->unbalanced
  • +
  • composition(p=500)->well-balanced
  • +
  • composition(p=500)->dynamic
  • +
  • composition(p=500)->persuasive
  • +
  • composition(p=500)->dry
  • +
  • composition(p=500)->focused
  • + +
  • artstyle_adj(p=500)->unoriginal
  • +
  • artstyle_adj(p=500)->simple
  • +
  • artstyle_adj(p=500)->complex and realistic
  • +
  • artstyle_adj(p=500)->surrealistic
  • +
  • artstyle_adj(p=500)->classical
  • +
  • artstyle_adj(p=500)->modern
  • +
  • artstyle_adj(p=500)->symbolic
  • +
  • artstyle_adj(p=500)->amateurish yet inviting
  • +
  • artstyle_adj(p=500)->Dickensian
  • +
  • artstyle_adj(p=500)->Jane Austen-esque
  • +
  • artstyle_adj(p=500)->expressionistic
  • +
  • artstyle_adj(p=500)->Victorian
  • +
  • artstyle_adj(p=500)->Orwellian
  • +
  • artstyle_adj(p=500)->Kafkaesque
  • +
  • artstyle_adj(p=500)->Gatsbyian
  • +
  • artstyle_adj(p=500)->violent
  • +
  • artstyle_adj(p=500)->abstract
  • +
  • artstyle_adj(p=500)->hyper-realistic
  • +
  • artstyle_adj(p=500)->pulp
  • +
  • artstyle_adj(p=500)->minimalistic
  • +
  • artstyle_adj(p=500)->comic
  • +
  • artstyle_adj(p=500)->purist
  • +
  • artstyle_adj(p=500)->romantic
  • +
  • artstyle_adj(p=500)->erotic
  • +
  • artstyle_adj(p=500)->sensual
  • +
  • artstyle_adj(p=500)->heartfelt
  • + +
    +
    +
    + + +
    \ No newline at end of file diff --git a/1.1/Defs/SoundDefs/RimWriter_Sounds.xml b/1.1/Defs/SoundDefs/RimWriter_Sounds.xml new file mode 100644 index 0000000..a54730f --- /dev/null +++ b/1.1/Defs/SoundDefs/RimWriter_Sounds.xml @@ -0,0 +1,65 @@ + + + + + RimWriter_SoundManualTypewriter + MapOnly + True + + PrioritizeNearest + +
  • + True + +
  • + Typewriter/ManualTyping +
  • + + + 11 + 11 + + + 0.9311765 + 1.045882 + + + 10 + 30 + + +
    +
    + + + RimWriter_SoundManualPencil + MapOnly + True + + PrioritizeNearest + +
  • + True + +
  • + WritersTable/PencilWriting +
  • + + + 11 + 11 + + + 0.9311765 + 1.045882 + + + 10 + 30 + + +
    +
    + + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingCategories/RimWriter_ThingCategories.xml b/1.1/Defs/ThingCategories/RimWriter_ThingCategories.xml new file mode 100644 index 0000000..0851a95 --- /dev/null +++ b/1.1/Defs/ThingCategories/RimWriter_ThingCategories.xml @@ -0,0 +1,44 @@ + + + + + RimWriter_Writings + + Manufactured + true + UI/Icons/ThingCategories/jecrellBook + + + + RimWriter_BookMaterials + + Manufactured + true + UI/Icons/ThingCategories/jecrellBook + + + + RimWriter_Tablets + + RimWriter_Writings + true + UI/Icons/ThingCategories/jecrellTablet + + + + RimWriter_Books + + RimWriter_Writings + true + UI/Icons/ThingCategories/jecrellBook + + + + RimWriter_Scrolls + + RimWriter_Writings + true + UI/Icons/ThingCategories/jecrellScroll + + + \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml b/1.1/Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml new file mode 100644 index 0000000..95fbded --- /dev/null +++ b/1.1/Defs/ThingDefs_Buildings/RimWriter_Bookcases.xml @@ -0,0 +1,139 @@ + + + + + Jecrell_Bookcase + + RimWriter.Building_Bookcase + MinifiedThing + Used to hold and catalog books. + +
  • BuildingsFurniture
  • +
    + 0.45 + +
  • RimWriter_TechBookshelves
  • +
    + + Building/Production/LibraryBookcase/Jecrell_Bookcase + Graphic_Multi + CutoutComplex + 3 + + BuildingOnTop + true + true + + 100 + 5000 + 15 + 1.0 + 5 + 1 + + +
  • Metallic
  • +
  • Woody
  • +
  • Stony
  • +
    + 110 + 70 + PassThroughOnly + Joy + Misc2 + +
  • + + Building/Production/LibraryBookcase/Jecrell_BookcaseEmpty + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/LibraryBookcase/Jecrell_BookcaseSparse + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/LibraryBookcase/Jecrell_Bookcase + Graphic_Multi + CutoutComplex + 3 + + 1 + 30 +
  • +
    + + Jecrell_Books + false + true + true + + + +
  • RimWriter_Books
  • +
    +
    +
    + + + +
  • RimWriter_Books
  • +
    +
    +
    +
    + +
  • ITab_Storage
  • +
  • RimWriter.ITab_Inventory
  • +
    +
    + + + Jecrell_BookcaseShort + + Used to hold and catalog books. + 55 + + 50 + 2500 + 10 + 1.0 + 2.5 + 1 + + + Building/Production/ShortBookcase/Jecrell_ShortBookcase + Graphic_Multi + CutoutComplex + 3 + + +
  • + + Building/Production/ShortBookcase/Jecrell_ShortBookcaseEmpty + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/ShortBookcase/Jecrell_ShortBookcaseSparse + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/ShortBookcase/Jecrell_ShortBookcase + Graphic_Multi + CutoutComplex + 3 + + 1 + 15 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Buildings/RimWriter_Buildings.xml b/1.1/Defs/ThingDefs_Buildings/RimWriter_Buildings.xml new file mode 100644 index 0000000..6b52242 --- /dev/null +++ b/1.1/Defs/ThingDefs_Buildings/RimWriter_Buildings.xml @@ -0,0 +1,124 @@ + + + + + Jecrell_StoneShelf + + A stone shelf carved for holding tablets or miscellaneous items. Items stored in this will not deteriorate, even if outside. + Building_Storage + + Building/Furniture/jecrellStoneShelf + Graphic_Multi + (3,2) + + Building + PassThroughOnly + 0.4 + true + +
  • Stony
  • +
    + 50 + + 100 + 12 + 800 + 1.0 + + (2,1) + South + + true + true + + Important + + +
  • RimWriter_Tablets
  • +
    +
    +
    +
    + +
  • ITab_Storage
  • +
    + Misc12 + 0.5 + Item + false + +
  • RimWriter_TechPrimitiveWriting
  • +
    +
    + + + +
    diff --git a/1.1/Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml b/1.1/Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml new file mode 100644 index 0000000..9129565 --- /dev/null +++ b/1.1/Defs/ThingDefs_Buildings/RimWriter_PaperTables.xml @@ -0,0 +1,120 @@ + + + + +
  • BuildingsProduction
  • +
    + + + RimWriter_PapermakingBench + + Building_WorkTable + A station that allows for the creation of paper. It features a manual grinder, pulp collector, paper framer, paper press, and various tools to produce the different types of paper, parchment, and more. + + Building/Production/PaperTable/jecrellTablePaper + Graphic_Multi + CutoutComplex + (3.5,1.5) + + Damage/Corner + Damage/Corner + Damage/Corner + Damage/Corner + + + + + +
  • Metallic
  • +
  • Woody
  • +
  • Stony
  • +
    + + 5 + + 100 + MinifiedThing + Building + true + 0.5 + True + + 100 + 2000 + 120 + 1.0 + 0.5 + + +
  • RimWriter_TechSimpleWriting
  • +
    + (3,1) + Production + PassThroughOnly + 70 + True + (0,0,-1) + Item + +
  • ITab_Bills
  • +
    + + BillsTab + + Misc11 + RimWriter_PaperMaking +
    + + + RimWriter_PapermakingBenchElectric + + A table that allows for the creation of paper. It features a pulp collector, paper framer, and paper press. + + Building/Production/PaperTableElectric/jecrellTablePaperElectric + Graphic_Multi + CutoutComplex + (3.5,1.5) + + Damage/Corner + Damage/Corner + Damage/Corner + Damage/Corner + + + + 120 + 2500 + 120 + 1.0 + + 4 + + 20 + + + 0.5 + + +
  • + CompPowerTrader + true + 120 +
  • +
  • +
  • + +
  • ToolCabinet
  • + + +
  • + + +
  • PlaceWorker_ShowFacilitiesConnections
  • + + +
  • RimWriter_TechSimpleWriting
  • +
  • Electricity
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml b/1.1/Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml new file mode 100644 index 0000000..6feecc2 --- /dev/null +++ b/1.1/Defs/ThingDefs_Buildings/RimWriter_Scrollcases.xml @@ -0,0 +1,138 @@ + + + + Jecrell_Scrollcase + + RimWriter.Building_Bookcase + MinifiedThing + +
  • BuildingsFurniture
  • +
    + Used to hold and catalog scrolls. + 0.45 + +
  • RimWriter_TechBookshelves
  • +
    + + Building/Production/LibraryScrollcase/Jecrell_Scrollcase + Graphic_Multi + CutoutComplex + 3 + + BuildingOnTop + true + true + + 100 + 5000 + 15 + 1.0 + 5 + 1 + + +
  • Metallic
  • +
  • Woody
  • +
  • Stony
  • +
    + 110 + 70 + PassThroughOnly + Joy + Misc2 + +
  • + + Building/Production/LibraryScrollcase/Jecrell_ScrollcaseEmpty + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/LibraryScrollcase/Jecrell_ScrollcaseSparse + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/LibraryScrollcase/Jecrell_Scrollcase + Graphic_Multi + CutoutComplex + 3 + + 1 + 30 +
  • +
    + + Jecrell_Books + false + true + true + + + +
  • RimWriter_Scrolls
  • +
    +
    +
    + + + +
  • RimWriter_Scrolls
  • +
    +
    +
    +
    + +
  • ITab_Storage
  • +
  • RimWriter.ITab_Inventory
  • +
    +
    + + + Jecrell_ScrollcaseShort + + Used to hold and catalog scrolls. + MinifiedThing + 55 + + 50 + 2500 + 10 + 1.0 + 2.5 + 1 + + + Building/Production/ShortScrollcase/Jecrell_ShortScrollcase + Graphic_Multi + CutoutComplex + 3 + + +
  • + + Building/Production/ShortScrollcase/Jecrell_ShortScrollcaseEmpty + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/ShortScrollcase/Jecrell_ShortScrollcaseSparse + Graphic_Multi + CutoutComplex + 3 + + + Building/Production/ShortScrollcase/Jecrell_ShortScrollcase + Graphic_Multi + CutoutComplex + 3 + + 1 + 15 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml b/1.1/Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml new file mode 100644 index 0000000..17367ec --- /dev/null +++ b/1.1/Defs/ThingDefs_Buildings/RimWriter_WritingTables.xml @@ -0,0 +1,141 @@ + + + + +
  • BuildingsProduction
  • +
    + + + RimWriter_TableTypewriter + + RimWriter.Building_Typewriter + A writer's bench equipped with a typewriter. + + Building/Production/TypewriterTable/Jecrell_TypewriterTable + Graphic_Multi + CutoutComplex + (3.5,1.5) + + Damage/Corner + Damage/Corner + Damage/Corner + Damage/Corner + + + true + South + + 50 + + +
  • Metallic
  • +
  • Woody
  • +
  • Stony
  • +
    + 75 + MinifiedThing + Building + true + 0.5 + True + + 150 + 10000 + 180 + 1.0 + 10 + 1 + + +
  • RimWriter_TechTypewriting
  • +
    + (3,1) + Joy + PassThroughOnly + 70 + True + (0,0,1) + Item + +
  • ITab_Bills
  • +
    + + BillsTab + Jecrell_Writing + + +
  • + RimWriter_FreeWrite + Write +
  • +
    + Misc11 + Jecrell_TypewriterTable +
    + + + + RimWriter_TableWriting + + RimWriter.Building_Typewriter + A writer's bench equipped with a feathered quill, scissors, rulers, and an inkwell. + + Building/Production/WritersTable/Jecrell_WritersTable + Graphic_Multi + CutoutComplex + (3.5,1.5) + + Damage/Corner + Damage/Corner + Damage/Corner + Damage/Corner + + + true + South + +
  • Metallic
  • +
  • Woody
  • +
  • Stony
  • +
    + 150 + MinifiedThing + Building + true + 0.5 + True + + 100 + 7000 + 120 + 1.0 + 4 + 1 + + +
  • RimWriter_TechHandWriting
  • +
    + (3,1) + Joy + PassThroughOnly + 70 + True + (0,0,1) + Item + +
  • ITab_Bills
  • +
    + + BillsTab + Jecrell_Writing + + +
  • + RimWriter_FreeWrite + Write +
  • +
    + Misc11 + Jecrell_TypewriterTable +
    +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_Books.xml b/1.1/Defs/ThingDefs_Item/RimWriter_Books.xml new file mode 100644 index 0000000..c1fcebc --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_Books.xml @@ -0,0 +1,95 @@ + + + + + Jecrell_Book + + A collection of pages. + + Item/Resource/Journal/Jecrell_Book + Graphic_Single + CutoutComplex + 15 + 0.5 + + +
  • +
  • + CompQuality +
  • +
  • + RimWriterNamerBook + RimWriterArtDescription_Book +
  • +
    +
    + + + + Jecrell_Guidebook + + RimWriter.GuideBook + A skillbook used to help characters with their professions and skill improvement. + + Item/Resource/Journal/Jecrell_JournalBook + Graphic_Single + CutoutComplex + 35 + 0.5 + + + + + 4000 + 0.05 + + +
  • +
  • + CompQuality +
  • +
  • + RimWriterNamerJournal + RimWriterArtDescription_Guide +
  • +
    + +
  • ExoticMisc
  • +
  • Books
  • +
    +
    + + + RimWriter.ThingBook + Neolithic + Item + 10 + true + true + true + + 1 + 3500 + 20 + 1.0 + 2 + 1.1 + + +
  • Leathery
  • +
    + 5 + Item + True + Never + +
  • Items
  • +
  • RimWriter_Books
  • +
    + +
  • ITab_Art
  • +
    + Filth_Trash +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_Journals.xml b/1.1/Defs/ThingDefs_Item/RimWriter_Journals.xml new file mode 100644 index 0000000..3413311 --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_Journals.xml @@ -0,0 +1,27 @@ + + + + + Jecrell_BookJournal + + A typed collection of journal pages. + + Item/Resource/Journal/Jecrell_JournalBook + Graphic_Single + CutoutComplex + 35 + 0.5 + + +
  • +
  • + CompQuality +
  • +
  • + RimWriterNamerJournal + RimWriterArtDescription_Journal +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_Materials.xml b/1.1/Defs/ThingDefs_Item/RimWriter_Materials.xml new file mode 100644 index 0000000..28676a4 --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_Materials.xml @@ -0,0 +1,108 @@ + + + + + + + Jecrell_Paper + + A material made from wood used for book making. + + 5 + + + 100 + GeneralLaborSpeed + Artistic + UnfinishedWriting + RimWriter_SoundManualPencil + +
  • RimWriter_PapermakingBench
  • +
  • RimWriter_PapermakingBenchElectric
  • +
    + RimWriter_TechHandWriting +
    +
    + + + Jecrell_Parchment + + A long lasting material made from hides or skin used for book making. + 5 + +
  • Leathery
  • +
    + + 100 + GeneralLaborSpeed + Artistic + UnfinishedWriting + RimWriter_SoundManualPencil + +
  • RimWriter_PapermakingBench
  • +
  • RimWriter_PapermakingBenchElectric
  • +
    + RimWriter_TechHandWriting +
    +
    + + + Jecrell_ClothPaper + + A long lasting material made from fabric used for book making, sometimes also referred to as fabric paper or rag paper. + 5 + +
  • Fabric
  • +
    + + 100 + GeneralLaborSpeed + Artistic + UnfinishedWriting + RimWriter_SoundManualPencil + +
  • RimWriter_PapermakingBench
  • +
  • RimWriter_PapermakingBenchElectric
  • +
    + RimWriter_TechHandWriting +
    +
    + + + RimWriter.Page + Neolithic + + Item/Resource/Journal/Jecrell_Journal + Graphic_Single + 35 + + Item + 5000 + 10 + true + true + true + + 0 + 0.05 + 1500 + 20 + 2.0 + 0.5 + + Item + True + Never + +
  • RimWriter_BookMaterials
  • +
    + Filth_Trash +
    + + + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_Scrolls.xml b/1.1/Defs/ThingDefs_Item/RimWriter_Scrolls.xml new file mode 100644 index 0000000..12ee10a --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_Scrolls.xml @@ -0,0 +1,55 @@ + + + + Jecrell_LeatherScroll + + A leather scroll telling of an event that occurred in the colony. + + Item/Resource/Journal/Jecrell_Scroll + Graphic_Single + CutoutComplex + 15 + 0.5 + + + 0.05 + 4000 + 30 + 1.0 + 2 + 0.6 + + +
  • Items
  • +
  • RimWriter_Scrolls
  • +
    + +
  • Leathery
  • +
    + Neolithic + Filth_Trash + + ResearchSpeed + Intellectual + UnfinishedWritingScroll + Recipe_ButcherCorpseFlesh + +
  • CraftingSpot
  • +
  • ButcherSpot
  • +
  • TableButcher
  • +
  • RimWriter_TableWriting
  • +
    + RimWriter_TechSimpleWriting +
    + +
  • +
  • + CompQuality +
  • +
  • + RimWriterNamerScroll + RimWriterArtDescription_Book +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_Skillbooks.xml b/1.1/Defs/ThingDefs_Item/RimWriter_Skillbooks.xml new file mode 100644 index 0000000..e294492 --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_Skillbooks.xml @@ -0,0 +1,38 @@ + + + + + Jecrell_Skillbook + + RimWriter.GuideBook + A skillbook used to help characters with their professions and skill improvement. + + Item/Resource/Journal/Jecrell_JournalBook + Graphic_Single + CutoutComplex + 35 + 0.5 + + + + + 4000 + 0.05 + + +
  • +
  • + CompQuality +
  • +
  • + RimWriterNamerJournal + RimWriterArtDescription_Guide +
  • +
    + +
  • ExoticMisc
  • +
  • Books
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_Tablets.xml b/1.1/Defs/ThingDefs_Item/RimWriter_Tablets.xml new file mode 100644 index 0000000..8bbc197 --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_Tablets.xml @@ -0,0 +1,53 @@ + + + + Jecrell_Tablet + + A stone chiseled tablet telling of an event that occurred in the colony. + + Item/Resource/Journal/Jecrell_Tablet + Graphic_Single + CutoutComplex + 15 + 0.5 + + + 5 + 4000 + 60 + 1.0 + 0 + 0.25 + + +
  • Items
  • +
  • RimWriter_Tablets
  • +
    + +
  • Stony
  • +
    + Neolithic + Filth_RubbleRock + + GeneralLaborSpeed + Intellectual + UnfinishedWritingTablet + Recipe_MakeStoneBlocks + +
  • CraftingSpot
  • +
  • TableStonecutter
  • +
    + RimWriter_TechPrimitiveWriting +
    + +
  • +
  • + CompQuality +
  • +
  • + RimWriterNamerTablet + RimWriterArtDescription_Book +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.1/Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml b/1.1/Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml new file mode 100644 index 0000000..f88dc29 --- /dev/null +++ b/1.1/Defs/ThingDefs_Item/RimWriter_UnfinishedThings.xml @@ -0,0 +1,61 @@ + + + + + UnfinishedThing + Item + Item + true + true + true + None + RealtimeOnly + + + 0.05 + 50 + + +
  • + + true + false + 15 + +
  • Unfinished
  • + +
    + + + UnfinishedWriting + + + Item/Unfinished/Jecrell_Page + Graphic_Single + + + + + + UnfinishedWritingTablet + + + 5 + + + Item/Unfinished/Jecrell_Tablet + Graphic_Single + + + + + UnfinishedWritingScroll + + + Item/Unfinished/Jecrell_Scroll + Graphic_Single + + + + +
    \ No newline at end of file diff --git a/1.1/Defs/ThoughDefs/RimWriter_Thoughts.xml b/1.1/Defs/ThoughDefs/RimWriter_Thoughts.xml new file mode 100644 index 0000000..c5f62d4 --- /dev/null +++ b/1.1/Defs/ThoughDefs/RimWriter_Thoughts.xml @@ -0,0 +1,53 @@ + + + + + RimWriter_ReadingInImpressiveLibrary + 1 + 1 + +
  • + +
  • + +
  • + +
  • + + I relaxed in a decent library. + 2 +
  • +
  • + + I relayxed in a nice library. + 3 +
  • +
  • + + I had a great time in an impressive library. + 4 +
  • +
  • + + I had a great time in a very impressive library. + 5 +
  • +
  • + + I had a great time in an extremely impressive library. I could stay there forever. + 6 +
  • +
  • + + I had a great time in an unbelievably impressive library. I could stay there forever. + 7 +
  • +
  • + + I had a great time in a wonderful library. I could stay there forever. + 8 +
  • +
    +
    + +
    diff --git a/1.1/Defs/Tutor/RimWriter_Concepts.xml b/1.1/Defs/Tutor/RimWriter_Concepts.xml new file mode 100644 index 0000000..e0d4752 --- /dev/null +++ b/1.1/Defs/Tutor/RimWriter_Concepts.xml @@ -0,0 +1,11 @@ + + + + + Jecrell_TypewriterTable + + 50 + Pawns can use the typewriting table to give themselves joy and reduce stress. If Call of Cthulhu is enabled, this station will also reduce the severity of insanity at a faster rate. Pawns can also create journal items. Currently, these are rudimentary, and can be destroyed. They will be expanded upon later. + + + \ No newline at end of file diff --git a/1.1/Defs/WorkGiverDefs/RimWriter_WorkGivers.xml b/1.1/Defs/WorkGiverDefs/RimWriter_WorkGivers.xml new file mode 100644 index 0000000..144dd0b --- /dev/null +++ b/1.1/Defs/WorkGiverDefs/RimWriter_WorkGivers.xml @@ -0,0 +1,53 @@ + + + + + RimWriter_ReturnBooks + + RimWriter.WorkGiver_ReturnBooks + Hauling + return + returning + 70 + +
  • Manipulation
  • +
    +
    + + + DoBillsWrite + + WorkGiver_DoBill + Art + 100 + +
  • RimWriter_TableTypewriter
  • +
  • RimWriter_TableWriting
  • +
    + write + writing at + +
  • Manipulation
  • +
    + true +
    + + + DoBillsPapermaking + + WorkGiver_DoBill + Art + 100 + +
  • RimWriter_PapermakingBench
  • +
  • RimWriter_PapermakingBenchElectric
  • +
    + make + making at + +
  • Manipulation
  • +
    + true +
    + +
    \ No newline at end of file diff --git a/1.1/Languages/English/Keyed/RimWriter_Keys.xml b/1.1/Languages/English/Keyed/RimWriter_Keys.xml new file mode 100644 index 0000000..d16a008 --- /dev/null +++ b/1.1/Languages/English/Keyed/RimWriter_Keys.xml @@ -0,0 +1,34 @@ + + + + + + {0} has no skill labeled {1}. + {0}'s {1} skill is disabled. They will receive no benefit from this skillbook. + + + + Apply settings + Enable simple recipes + Enabling simple recipes removes steps to creating books for shorter playthroughs. + + + Read {0} + Storage unavailable + Cannot read {0} + + + {0}'s {1} Skillbook + {0} Skillbook + This particular skillbook teaches the {0} skill at a rate of {1} efficiency. + Trash it + Quickly disposes of this {0} in its entirety, as if it never existed... with perhaps a little trash left behind. + + + Inventory + Can hold a total of {0} books + {0} by {1} + Retrieve Book + Find and remove a particular book from the bookcase. + Contains {0} books + \ No newline at end of file diff --git a/1.1/Languages/English/Strings/Words/Nouns/Books.txt b/1.1/Languages/English/Strings/Words/Nouns/Books.txt new file mode 100644 index 0000000..f982ad2 --- /dev/null +++ b/1.1/Languages/English/Strings/Words/Nouns/Books.txt @@ -0,0 +1,21 @@ +book + +novel +storybook +writing +essay + +tome +manual +anthology +pocket book +guide +notebook +textbook + +work +poem +lullaby +song +tune +codex \ No newline at end of file diff --git a/1.1/Languages/English/Strings/Words/Nouns/Journals.txt b/1.1/Languages/English/Strings/Words/Nouns/Journals.txt new file mode 100644 index 0000000..cfa0463 --- /dev/null +++ b/1.1/Languages/English/Strings/Words/Nouns/Journals.txt @@ -0,0 +1,30 @@ +journal + +diary +log +logbook +chronicle +record +memoir + +treatise +manual +guide +notebook + +codex +chronology +annals +omnibus +compendium +monograph + +account +statement +observation +review + +encyclopedia +lexicon +dictionary +thesaurus \ No newline at end of file diff --git a/1.1/Languages/English/Strings/Words/Nouns/Scrolls.txt b/1.1/Languages/English/Strings/Words/Nouns/Scrolls.txt new file mode 100644 index 0000000..c973c39 --- /dev/null +++ b/1.1/Languages/English/Strings/Words/Nouns/Scrolls.txt @@ -0,0 +1,7 @@ +scroll + +scripture +parchment +document +manuscript +roll \ No newline at end of file diff --git a/1.1/Languages/English/Strings/Words/Nouns/Tablets.txt b/1.1/Languages/English/Strings/Words/Nouns/Tablets.txt new file mode 100644 index 0000000..9407836 --- /dev/null +++ b/1.1/Languages/English/Strings/Words/Nouns/Tablets.txt @@ -0,0 +1,15 @@ +tablet + +etching +lithograph +inscription +epitaph +legend +engraving + +commmandment +precipt +rule +edict +order +law \ No newline at end of file diff --git a/About/About.xml b/About/About.xml index 61fae49..9c4268a 100644 --- a/About/About.xml +++ b/About/About.xml @@ -1,9 +1,17 @@  + jecrell.rimwriter RimWriter - Books, Scrolls, Tablets, and Libraries Jecrell - 1.0.2059 - 1.20.0.2 (01-04-2019) + https://discord.gg/AaVFA7V + +
  • 1.0
  • +
  • 1.1
  • +
    + +
  • jecrell.jecstools
  • +
    + 1.21.0.0 (04-06-2020) Add tablets, books, scrolls and more to your RimWorld playthroughs. @@ -35,11 +43,15 @@ I wanted to make a framework sort of mod that I could add to or use later in my Thank you to my Patrons for supporting me in my efforts. Without you, none of this would be possible. These are the most excellent rim dwellers who support me: -Maaxar, Shibby Says, TheJagermeister, Cory Bonifay, Kiya Nicoll, Matt Harris, Paul Fenwick, Grendalloffen, Martin K. Bonde, Bentley Alsup, Eric Idema, MasterScootie, GoSu, Josh McCabe, spook, Clifford Campbell, J, CrankyPeanut, E_T, Finwej, Jan Koutsky, Audrin Navarro, Михаил Юрченко, John Kanady, Luis Figueroa, Midgeman, Nate Haug, Nemuri Hime, Richard Paul, SilentWeirdo, Calum, Calhoun Cattell, Keith Thoma, Tim Stillson, Dick Jones, Patrick, Nathan Getman, Populous25, Sharp Spook, Steven James, Marcus Sireanu, Mark, Emily Shaw, Drachken, Zalson, Baron Xot, Nicholas Bateman, Christopher, Justin Andres, Luis Salvatierra, TinyFloatingTurtle, George Chong Chuang Ming, John Boehr, Oliver White, roxxploxx, Robin Hager, Brachiaraidos, That Guy, Toc Anastar, Karol Rybak, Allic, Austin Harbert, Yewty, Evan Hwang, Ryan Brock, Jonathan Holzinger, MC, Alexander, Kevin Reagan, Alex Mederer, Toss Antilles, Chelsea Archambeau, Aron Glasser, Dan Winn, Fredric Sundberg, Sarah Banks, ted stevens +Cade Perkinson, Jay Sacane, John Pahl, Tankok1998 also known as the Shermanlover, Vahl Kilmer, Zsolt Biró, Genaeve, JD2.0, Olteanu Laurentiu, Penelope Charli Whitman, Charlie Garnham, Steven Pretswell, Sultan Saltlick, RainerWingel, Daniel Paseka, Kyben, Charles Morris, Chris Seieroe, Robin Gleeson, Lea Stannard, Teres, David Silberstein, Kiya Nicoll, Matt Harris, Paul Fenwick, Michael Whitehead, Robert Alessi, Elodie, Gothi, Audrin Navarro, Михаил Юрченко, Calum, Tim Stillson, Populous25, Don Homer, Adam Bliss, Maaxar, Christopher, TinyFloatingTurtle, John Kanady, Midgeman, Nathan Getman, Sharp Spook, LionsFate, Cristina Shaver, Mark, George Chong Chuang Ming, Oliver White, roxxploxx, Emily Shaw, Justin Andres, Robin Hager, Kevin Reagan, Austin Harbert, Marcus Regan, E_T, Alex Mederer, Alexander, Toss Antilles ======================== Changelog ======================== +1.21.0.0 (04-06-2020) +======================== +Updated for RimWorld 1.1. Upscaled and redid textures to improve quality when using mods such as Camera plus. + 1.20.0.2 (01-04-2019) ======================== Skillbooks now properly display graphics and authors diff --git a/About/PatreonURL.txt b/About/PatreonURL.txt index 8240cf7..df15a24 100644 --- a/About/PatreonURL.txt +++ b/About/PatreonURL.txt @@ -1 +1 @@ -https://www.patreon.com/posts/rimwriter-for-1-22328618 \ No newline at end of file +https://www.patreon.com/posts/35727133 \ No newline at end of file diff --git a/About/Version.txt b/About/Version.txt index 6b417a8..887344e 100644 --- a/About/Version.txt +++ b/About/Version.txt @@ -1 +1 @@ -1.20.0.2 +1.21.0.0 diff --git a/LoadFolders.xml b/LoadFolders.xml new file mode 100644 index 0000000..50c9176 --- /dev/null +++ b/LoadFolders.xml @@ -0,0 +1,10 @@ + + +
  • 1.0
  • +
  • /
  • +
    + +
  • /
  • +
  • 1.1
  • +
    +
    diff --git a/PhotoshopFiles/Jecrell_Scrollcase_north.psd b/PhotoshopFiles/Jecrell_Scrollcase_north.psd new file mode 100644 index 0000000..e3b0510 Binary files /dev/null and b/PhotoshopFiles/Jecrell_Scrollcase_north.psd differ diff --git a/PhotoshopFiles/Jecrell_ShortBookcaseEmpty_south.psd b/PhotoshopFiles/Jecrell_ShortBookcaseEmpty_south.psd new file mode 100644 index 0000000..9403d98 Binary files /dev/null and b/PhotoshopFiles/Jecrell_ShortBookcaseEmpty_south.psd differ diff --git a/Source/.idea/.idea.ArkhamEstate/.idea/.name b/Source/.idea/.idea.ArkhamEstate/.idea/.name deleted file mode 100644 index 14ee24d..0000000 --- a/Source/.idea/.idea.ArkhamEstate/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -ArkhamEstate \ No newline at end of file diff --git a/Source/.idea/.idea.ArkhamEstate/.idea/contentModel.xml b/Source/.idea/.idea.ArkhamEstate/.idea/contentModel.xml deleted file mode 100644 index f80c81e..0000000 --- a/Source/.idea/.idea.ArkhamEstate/.idea/contentModel.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Source/.idea/.idea.ArkhamEstate/.idea/indexLayout.xml b/Source/.idea/.idea.ArkhamEstate/.idea/indexLayout.xml deleted file mode 100644 index f1feadf..0000000 --- a/Source/.idea/.idea.ArkhamEstate/.idea/indexLayout.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Source/.idea/.idea.ArkhamEstate/.idea/modules.xml b/Source/.idea/.idea.ArkhamEstate/.idea/modules.xml deleted file mode 100644 index f22ab9a..0000000 --- a/Source/.idea/.idea.ArkhamEstate/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Source/.idea/.idea.ArkhamEstate/.idea/workspace.xml b/Source/.idea/.idea.ArkhamEstate/.idea/workspace.xml deleted file mode 100644 index c2b7195..0000000 --- a/Source/.idea/.idea.ArkhamEstate/.idea/workspace.xml +++ /dev/null @@ -1,1378 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Source/.idea/.idea.RimWriter/riderModule.iml b/Source/.idea/.idea.RimWriter/riderModule.iml deleted file mode 100644 index 1a4e0d9..0000000 --- a/Source/.idea/.idea.RimWriter/riderModule.iml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Source/.vs/ArkhamEstate/v14/.suo b/Source/.vs/ArkhamEstate/v14/.suo deleted file mode 100644 index c381005..0000000 Binary files a/Source/.vs/ArkhamEstate/v14/.suo and /dev/null differ diff --git a/Source/.vs/ArkhamEstate/v15/.suo b/Source/.vs/ArkhamEstate/v15/.suo deleted file mode 100644 index 5ff9e2e..0000000 Binary files a/Source/.vs/ArkhamEstate/v15/.suo and /dev/null differ diff --git a/Source/.vs/RimWriter/v15/.suo b/Source/.vs/RimWriter/v15/.suo deleted file mode 100644 index 1a526fd..0000000 Binary files a/Source/.vs/RimWriter/v15/.suo and /dev/null differ diff --git a/Source/.vs/RimWriter/v15/Server/sqlite3/db.lock b/Source/.vs/RimWriter/v15/Server/sqlite3/db.lock deleted file mode 100644 index e69de29..0000000 diff --git a/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide b/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide deleted file mode 100644 index 56758a8..0000000 Binary files a/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide and /dev/null differ diff --git a/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide-shm b/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide-shm deleted file mode 100644 index 3fa3289..0000000 Binary files a/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide-shm and /dev/null differ diff --git a/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide-wal b/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide-wal deleted file mode 100644 index 93f293a..0000000 Binary files a/Source/.vs/RimWriter/v15/Server/sqlite3/storage.ide-wal and /dev/null differ diff --git a/Source/JobDriver_FreeWrite.cs b/Source/AI/JobDriver_FreeWrite.cs similarity index 100% rename from Source/JobDriver_FreeWrite.cs rename to Source/AI/JobDriver_FreeWrite.cs diff --git a/Source/JobDriver_ReadABook.cs b/Source/AI/JobDriver_ReadABook.cs similarity index 100% rename from Source/JobDriver_ReadABook.cs rename to Source/AI/JobDriver_ReadABook.cs diff --git a/Source/JobDriver_ReturnBook.cs b/Source/AI/JobDriver_ReturnBook.cs similarity index 100% rename from Source/JobDriver_ReturnBook.cs rename to Source/AI/JobDriver_ReturnBook.cs diff --git a/Source/JobDriver_Write.cs b/Source/AI/JobDriver_Write.cs similarity index 100% rename from Source/JobDriver_Write.cs rename to Source/AI/JobDriver_Write.cs diff --git a/Source/JoyGiver_ReadABook.cs b/Source/AI/JoyGiver_ReadABook.cs similarity index 100% rename from Source/JoyGiver_ReadABook.cs rename to Source/AI/JoyGiver_ReadABook.cs diff --git a/Source/WorkGiver_ReturnBooks.cs b/Source/AI/WorkGiver_ReturnBooks.cs similarity index 100% rename from Source/WorkGiver_ReturnBooks.cs rename to Source/AI/WorkGiver_ReturnBooks.cs diff --git a/Source/CompGlower_StreetLamp.cs b/Source/CompGlower_StreetLamp.cs deleted file mode 100644 index 545888b..0000000 --- a/Source/CompGlower_StreetLamp.cs +++ /dev/null @@ -1,95 +0,0 @@ -using RimWorld; -using System; -using Verse; - -namespace ArkhamEstate -{ - public class CompGlower_StreetLamp : CompGlower - { - private bool glowOnInt; - - public new CompProperties_Glower_StreetLamp Props - { - get - { - return (ArkhamEstate.CompProperties_Glower_StreetLamp)this.props; - } - } - - private bool ShouldBeLitNow - { - get - { - if (!this.parent.Spawned) - { - return false; - } - CompPowerTrader compPowerTrader = this.parent.TryGetComp(); - if (compPowerTrader != null && !compPowerTrader.PowerOn) - { - return false; - } - CompRefuelable compRefuelable = this.parent.TryGetComp(); - if (compRefuelable != null && !compRefuelable.HasFuel) - { - return false; - } - CompFlickable compFlickable = this.parent.TryGetComp(); - return compFlickable == null || compFlickable.SwitchIsOn; - } - } - - public new void UpdateLit(Map map) - { - bool shouldBeLitNow = this.ShouldBeLitNow; - if (this.glowOnInt == shouldBeLitNow) - { - return; - } - this.glowOnInt = shouldBeLitNow; - IntVec3 glowPosition = this.parent.Position + GenAdj.CardinalDirections[0] + GenAdj.CardinalDirections[0]; - if (!this.glowOnInt) - { - map.mapDrawer.MapMeshDirty(glowPosition, MapMeshFlag.Things); - map.glowGrid.DeRegisterGlower(this); - } - else - { - map.mapDrawer.MapMeshDirty(glowPosition, MapMeshFlag.Things); - map.glowGrid.RegisterGlower(this); - } - } - - public override void PostSpawnSetup() - { - if (this.ShouldBeLitNow) - { - this.UpdateLit(base.parent.Map); - this.parent.Map.glowGrid.RegisterGlower(base); - } - else - { - this.UpdateLit(this.parent.Map); - } - } - - public override void ReceiveCompSignal(string signal) - { - if (signal == "PowerTurnedOn" || signal == "PowerTurnedOff" || signal == "FlickedOn" || signal == "FlickedOff" || signal == "Refueled" || signal == "RanOutOfFuel") - { - this.UpdateLit(this.parent.Map); - } - } - - public override void PostExposeData() - { - Scribe_Values.LookValue(ref this.glowOnInt, "glowOn", false, false); - } - - public override void PostDeSpawn(Map map) - { - base.PostDeSpawn(map); - this.UpdateLit(map); - } - } -} diff --git a/Source/CompProperties_Glower_StreetLamp.cs b/Source/CompProperties_Glower_StreetLamp.cs deleted file mode 100644 index 3f821a5..0000000 --- a/Source/CompProperties_Glower_StreetLamp.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using Verse; - -namespace ArkhamEstate -{ - public class CompProperties_Glower_StreetLamp : CompProperties - { - public float overlightRadius; - - public float glowRadius = 14f; - - public ColorInt glowColor = new ColorInt(255, 255, 255, 0) * 1.45f; - - public CompProperties_Glower_StreetLamp() - { - this.compClass = typeof(ArkhamEstate.CompGlower_StreetLamp); - } - } -} \ No newline at end of file diff --git a/Source/CthulhuNoCCL.cs b/Source/CthulhuNoCCL.cs deleted file mode 100644 index 6bfa52e..0000000 --- a/Source/CthulhuNoCCL.cs +++ /dev/null @@ -1,193 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Verse; - -namespace Cthulhu.NoCCL -{ - [StaticConstructorOnStartup] - internal static class DetourInjector - { - private static Assembly Assembly - { - get - { - return Assembly.GetAssembly(typeof(DetourInjector)); - } - } - - private static string AssemblyName - { - get - { - return DetourInjector.Assembly.FullName.Split(new char[] - { - ',' - }).First(); - } - } - - static DetourInjector() - { - LongEventHandler.QueueLongEvent(new Action(DetourInjector.Inject), "Initializing", true, null); - } - - private static void Inject() - { - Cthulhu_SpecialInjector cthulhu_SpecialInjector = new Cthulhu_SpecialInjector(); - bool flag = cthulhu_SpecialInjector.Inject(); - if (flag) - { - Log.Message(DetourInjector.AssemblyName + " injected."); - } - else - { - Log.Error(DetourInjector.AssemblyName + " failed to get injected properly."); - } - } - } - - public class SpecialInjector - { - public virtual bool Inject() - { - Log.Error("This should never be called."); - return false; - } - } - - public static class Detours - { - private static List detoured = new List(); - - private static List destinations = new List(); - - public unsafe static bool TryDetourFromTo(MethodInfo source, MethodInfo destination) - { - bool flag = source == null; - bool result; - if (flag) - { - Log.Error("Source MethodInfo is null: Detours"); - result = false; - } - else - { - bool flag2 = destination == null; - if (flag2) - { - Log.Error("Destination MethodInfo is null: Detours"); - result = false; - } - else - { - string item = string.Concat(new string[] - { - source.DeclaringType.FullName, - ".", - source.Name, - " @ 0x", - source.MethodHandle.GetFunctionPointer().ToString("X" + (IntPtr.Size * 2).ToString()) - }); - string item2 = string.Concat(new string[] - { - destination.DeclaringType.FullName, - ".", - destination.Name, - " @ 0x", - destination.MethodHandle.GetFunctionPointer().ToString("X" + (IntPtr.Size * 2).ToString()) - }); - Detours.detoured.Add(item); - Detours.destinations.Add(item2); - bool flag3 = IntPtr.Size == 8; - if (flag3) - { - long num = source.MethodHandle.GetFunctionPointer().ToInt64(); - long num2 = destination.MethodHandle.GetFunctionPointer().ToInt64(); - byte* ptr = (byte*)num; - long* ptr2 = (long*)(ptr + 2); - *ptr = 72; - ptr[1] = 184; - *ptr2 = num2; - ptr[10] = 255; - ptr[11] = 224; - } - else - { - int num3 = source.MethodHandle.GetFunctionPointer().ToInt32(); - int num4 = destination.MethodHandle.GetFunctionPointer().ToInt32(); - byte* ptr3 = (byte*)num3; - int* ptr4 = (int*)(ptr3 + 1); - int num5 = num4 - num3 - 5; - *ptr3 = 233; - *ptr4 = num5; - } - result = true; - } - } - return result; - } - } - - public class Cthulhu_SpecialInjector : SpecialInjector - { - private static readonly BindingFlags[] bindingFlagCombos = new BindingFlags[] - { - BindingFlags.Instance | BindingFlags.Public, - BindingFlags.Static | BindingFlags.Public, - BindingFlags.Instance | BindingFlags.NonPublic, - BindingFlags.Static | BindingFlags.NonPublic - }; - - private static Assembly Assembly - { - get - { - return Assembly.GetAssembly(typeof(DetourInjector)); - } - } - - public override bool Inject() - { - Type[] types = Cthulhu_SpecialInjector.Assembly.GetTypes(); - bool result; - for (int i = 0; i < types.Length; i++) - { - Type type = types[i]; - BindingFlags[] array = Cthulhu_SpecialInjector.bindingFlagCombos; - for (int j = 0; j < array.Length; j++) - { - BindingFlags bindingFlags = array[j]; - MethodInfo[] methods = type.GetMethods(bindingFlags); - for (int k = 0; k < methods.Length; k++) - { - MethodInfo methodInfo = methods[k]; - object[] customAttributes = methodInfo.GetCustomAttributes(typeof(DetourAttribute), true); - for (int l = 0; l < customAttributes.Length; l++) - { - DetourAttribute detourAttribute = (DetourAttribute)customAttributes[l]; - BindingFlags bindingFlags2 = (detourAttribute.bindingFlags != BindingFlags.Default) ? detourAttribute.bindingFlags : bindingFlags; - MethodInfo method = detourAttribute.source.GetMethod(methodInfo.Name, bindingFlags2); - bool flag = method == null; - if (flag) - { - Log.Error(string.Format("Cthulhu :: Detours :: Can't find source method '{0} with bindingflags {1}", methodInfo.Name, bindingFlags2)); - result = false; - return result; - } - bool flag2 = !Detours.TryDetourFromTo(method, methodInfo); - if (flag2) - { - result = false; - return result; - } - } - } - } - } - result = true; - return result; - } - } -} diff --git a/Source/CthulhuUtility.ExcludedCS b/Source/CthulhuUtility.ExcludedCS deleted file mode 100644 index 4bfd9ee..0000000 --- a/Source/CthulhuUtility.ExcludedCS +++ /dev/null @@ -1,117 +0,0 @@ -// ---------------------------------------------------------------------- -// These are basic usings. Always let them be here. -// ---------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; - -// ---------------------------------------------------------------------- -// These are RimWorld-specific usings. Activate/Deactivate what you need: -// ---------------------------------------------------------------------- -using UnityEngine; // Always needed -//using VerseBase; // Material/Graphics handling functions are found here -using Verse; // RimWorld universal objects are here (like 'Building') -using Verse.AI; // Needed when you do something with the AI -using Verse.AI.Group; -using Verse.Sound; // Needed when you do something with Sound -using Verse.Noise; // Needed when you do something with Noises -using RimWorld; // RimWorld specific functions are found here (like 'Building_Battery') -using RimWorld.Planet; // RimWorld specific functions for world creation -using System.Reflection; -//using RimWorld.SquadAI; // RimWorld specific functions for squad brains - -namespace ArkhamEstate -{ - static public class CthulhuUtility - { - public const string SanityLossDef = "CosmicHorror_SanityLoss"; - public const string AltSanityLossDef = "Cults_SanityLoss"; - - public static bool modCheck = false; - public static bool loadedCosmicHorrors = false; - - public static void SpawnThingDefOfCountAt(ThingDef of, int count, IntVec3 at) - { - while (count > 0) - { - - - Thing thing = ThingMaker.MakeThing(of, null); - - thing.stackCount = Math.Min(count, of.stackLimit); - GenPlace.TryPlaceThing(thing, at, ThingPlaceMode.Near); - count -= thing.stackCount; - } - } - - public static void SpawnPawnsOfCountAt(PawnKindDef kindDef, IntVec3 at, int count, Faction fac = null, bool berserk = false) - { - for (int i = 1; i <= count; i++) - { - if ((from cell in GenAdj.CellsAdjacent8Way(at) - where at.Walkable() - select cell).TryRandomElement(out at)) - { - Pawn pawn = PawnGenerator.GeneratePawn(kindDef, fac); - if (GenPlace.TryPlaceThing(pawn, at, ThingPlaceMode.Near, null)) - { - continue; - } - Find.WorldPawns.PassToWorld(pawn, PawnDiscardDecideMode.Discard); - if (berserk) pawn.mindState.mentalStateHandler.TryStartMentalState(MentalStateDefOf.Berserk); - } - } - } - - public static void ApplySanityLoss(Pawn pawn, float sanityLoss=0.3f, float sanityLossMax=1.0f) - { - string sanityLossDef; - sanityLossDef = AltSanityLossDef; - if (IsCosmicHorrorsLoaded()) sanityLossDef = SanityLossDef; - - Hediff pawnSanityHediff = pawn.health.hediffSet.GetFirstHediffOfDef(DefDatabase.GetNamed(sanityLossDef)); - if (pawnSanityHediff != null) - { - if (pawnSanityHediff.Severity <= sanityLossMax) - { - pawnSanityHediff.Severity += sanityLoss; - } - } - else - { - Hediff sanityLossHediff = HediffMaker.MakeHediff(DefDatabase.GetNamed(sanityLossDef), pawn, null); - sanityLossHediff.Severity = sanityLoss; - pawn.health.AddHediff(sanityLossHediff, null, null); - } - } - - public static bool IsCosmicHorrorsLoaded() - { - - if (!modCheck) ModCheck(); - return loadedCosmicHorrors; - } - - public static void ModCheck() - { - foreach (ModContentPack ResolvedMod in LoadedModManager.RunningMods) - { - if (ResolvedMod.Name.Contains("Call of Cthulhu - Cosmic Horrors")) - { - Log.Message("Loaded - Call of Cthulhu - Cosmic Horrors"); - loadedCosmicHorrors = true; - modCheck = true; - return; - } - } - Log.Message("Not Loaded - Call of Cthulhu - Cosmic Horrors"); - loadedCosmicHorrors = false; - modCheck = true; - return; - } - - - } -} diff --git a/Source/DetourAttribute.cs b/Source/DetourAttribute.cs deleted file mode 100644 index c27a07e..0000000 --- a/Source/DetourAttribute.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Reflection; - -namespace Cthulhu -{ - [AttributeUsage(AttributeTargets.Method)] - internal class DetourAttribute : Attribute - { - public Type source; - - public BindingFlags bindingFlags; - - public DetourAttribute(Type source) - { - this.source = source; - } - } -} diff --git a/Source/Example 1 - Building_DarkMatterGenerator.cs b/Source/Example 1 - Building_DarkMatterGenerator.cs deleted file mode 100644 index a981a6e..0000000 --- a/Source/Example 1 - Building_DarkMatterGenerator.cs +++ /dev/null @@ -1,391 +0,0 @@ -// Note: -// The first steps are with this tutorial already done: -// - The target .Net version is already switched to 3.5 -// - The references are already set to UnityEngine and Assembly-CSharp -// (Can all be done in the Projectsolution-Explorer) -// => right-click on RimWorld_ExampleProject => Settings => ... -// So on we go... - -// ---------------------------------------------------------------------- -// These are basic usings. Always let them be here. -// ---------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -// ---------------------------------------------------------------------- -// These are RimWorld-specific usings. Activate/Deactivate what you need: -// ---------------------------------------------------------------------- -using UnityEngine; // Always needed -//using VerseBase; // Material/Graphics handling functions are found here -using Verse; // RimWorld universal objects are here (like 'Building') -//using Verse.AI; // Needed when you do something with the AI -//using Verse.Sound; // Needed when you do something with Sound -//using Verse.Noise; // Needed when you do something with Noises -using RimWorld; // RimWorld specific functions are found here (like 'Building_Battery') -//using RimWorld.Planet; // RimWorld specific functions for world creation -//using RimWorld.SquadAI; // RimWorld specific functions for squad brains - -// Note: If the usings are not found, (red line under it,) look into the folder '/Source-DLLs' and follow the instructions in the text files - - -// Now the program starts: -// Here I've provided the source code of the Dark Matter Generator. A small power generating structure based of the Plasma Generator from mrofa - - -// This is the namespace of your mod. Change it to your liking, but don't forget to change it in your XML too. -namespace DarkMatterGenerator -{ - // Now follows the class with the actual programm of the building. - - // But first a few descriptions: - - // /// - // /// This is an XML-Tag. It is good practice to make a short description of the function in these. - // /// If you call the function from somewhere else, you'll get this summary text as a quick tooltip info. - // /// Try the ToolTipSample in the class... - // /// - - - // class (This is a class) - // Building_DarkMatterGenerator (This is the name of your new class) - // : Building (This is the base class 'Building'. Your class takes all the functions from the base class, but can override some of them to make it work how you like it to work.) - // This is, so that you don't need to write every function needed again and again. You write it once and take this as a base, so that the other classes have it already. - // The same goes for the error correction. If you find an error, you only have to correct it once and all your classes, that use this as a base, have the correction. - - - // Note: The following code will be partially created, if you write /// in the line before a class, function, ... - /// - /// This is the main class for the Dark Matter Generator. - /// - /// mrofa, Haplo - /// Usage of this code is ..... - public class Building_DarkMatterGenerator : Building - { - - // No real function, just test of tooltip - private void Tooltip_Test() - { - // Hover over this function and look at the tooltip.. - ToolTipSample.Sample(); - // Compare the tooltip with what is written in ToolTipSample.. - } - - - // It is easier to understand your code, when you write your private variables at the beginning of the class - // private variables => variables that need to hold their values between ticks or longer - // Another reason to place them here and later on only use the variables instead of the values: - // If you want to change the values, you have them directly at the beginning and not somewhere deep in your code.. - // ------------------------------------------------------------------------------------------------------ - - - // ===================== Variables ===================== - - // Work variable - private int counter = 0; // 60Ticks = 1s // 20000Ticks = 1 Day - private Phase phase = Phase.offline; // Actual phase - private Phase phaseOld = Phase.active; // Save-variable - - // Variables to set a specific value - private const int counterPhaseChargingMax = 2500; // Recharge-Time - private const int counterPhaseActiveMax = 20000; // Active-Time - - private float powerOutputCharging = -250; // Power needed at Recharge - private float powerOutputActive = 1000; // Power produced at Active - - - // Work enumeration - To make the reading of the active phase easier - private enum Phase - { - offline = 0, - recharging, - active - } - - // Component references (will be set in 'SpawnSetup()') - // CompGlower - This makes it possible for your building to glow. You can start and stop the glowing. - // CompPowerTrader - Checks, if power is available; gives power to the powernet;... - private CompGlower glowerComp; - private CompPowerTrader powerComp; - - // Sound refferences (Not used here..) - //private static readonly SoundDef SoundHiss = SoundDef.Named("PowerOn"); - - // Text-variables: with .Translate() they are updated from the language file in the folder 'Languages\en_US\Keyed\...' with the active language. - // Look into the function 'GetInspectString()' on how it will be translated - private string txtStatus = "DarkMatterGenerator_Status"; - private string txtOffline = "DarkMatterGenerator_Offline"; - private string txtRecharging = "DarkMatterGenerator_Recharging"; - private string txtActive = "DarkMatterGenerator_Active"; - - - // Destroyed flag. Most of the time not really needed, but sometimes... - private bool destroyedFlag = false; - - - - // ===================== Setup Work ===================== - - // --- Not really needed here --- - ///// - ///// Do something after the object is initialized, but before it is spawned - ///// - //public override void PostMake() - //{ - // // Do the work of the base class (Building) - // base.PostMake(); - //} - - - /// - /// Do something after the object is spawned - /// - public override void SpawnSetup() - { - // Do the work of the base class (Building) - base.SpawnSetup(); - - // Get refferences to the components CompPowerTrader and CompGlower - SetPowerGlower(); - } - - - /// - /// To save and load actual values (savegame-data) - /// - public override void ExposeData() - { - base.ExposeData(); - // Save and load the work variables, so they don't default after loading - Scribe_Values.LookValue(ref phase, "phase", Phase.offline); - Scribe_Values.LookValue(ref counter, "counter", 0); - - // Set the old value to the phase value - phaseOld = phase; - - // Get refferences to the components CompPowerTrader and CompGlower - SetPowerGlower(); - } - - - /// - /// Find the PowerComp and GlowerComp - /// - private void SetPowerGlower() - { - - // Get refferences to the components CompPowerTrader and CompGlower - powerComp = base.GetComp(); - glowerComp = base.GetComp(); - - // Preset the PowerOutput to 0 (negative values will draw power from the powernet) - powerComp.PowerOutput = 0; - - } - - - - // ===================== Destroy ===================== - - /// - /// Clean up when this is destroyed - /// - public override void Destroy(DestroyMode mode = DestroyMode.Vanish) - { - // block further ticker work - destroyedFlag = true; - - base.Destroy(mode); - } - - - - // ===================== Ticker ===================== - - /// - /// This is used, when the Ticker in the XML is set to 'Rare' - /// This is a tick thats done once every 250 normal Ticks - /// - public override void TickRare() - { - if (destroyedFlag) // Do nothing further, when destroyed (just a safety) - return; - - // Don't forget the base work - base.TickRare(); - - // Call work function - DoTickerWork(250); - } - - - /// - /// This is used, when the Ticker in the XML is set to 'Normal' - /// This Tick is done often (60 times per second) - /// - public override void Tick() - { - if (destroyedFlag) // Do nothing further, when destroyed (just a safety) - return; - - base.Tick(); - - // Call work function - DoTickerWork(1); - } - - - - // ===================== Main Work Function ===================== - - /// - /// This will be called from one of the Ticker-Functions. - /// - /// - private void DoTickerWork(int tickerAmount) - { - // The following, if activated, creates an entry to the output_log.txt file, so that you can debug something - //Log.Error("This description will be shown, if active, in the console and always in the output_log.txt"); - - if (powerComp.PowerOn) - { - // Power is on -> do work - // ---------------------- - - // We have 3 Phases: Offline, Recharging, Active - // Offline: When the power was cut, it is offline (counter will be reset) - // Recharge: For 1/8 of a day it needs 'Recharge', then it switches to 'Active' - // Active: It produces power for 1 day, before it needs to 'Recharge' - - - // phase == offline (status after power switch off) - if (phase == Phase.offline) - { - // Savety to prevent a loop if old == offline - if (phaseOld == Phase.offline) - phaseOld = Phase.active; - - // set to the old phase - phase = phaseOld; - return; - } - - // set the old variable - phaseOld = phase; - - // increase the counter by the ticker amount - counter += tickerAmount; // +1 with normal ticker, +250 with rare ticker - - // phase == charging - if (phase == Phase.recharging) - { - if (counter >= counterPhaseChargingMax) // counter >= 2500 ? - { - // Switch to active, counter 0 - phase = Phase.active; - counter = 0; - return; - } - - powerComp.PowerOutput = powerOutputCharging; // value: -250 - } - - // phase == active - if (phase == Phase.active) - { - if (counter >= counterPhaseActiveMax) // counter >= 20000 ? - { - // Switch to recharge, glower off, counter 0 - phase = Phase.recharging; - counter = 0; - return; - } - - powerComp.PowerOutput = powerOutputActive; // value: 1000 - } - - } - else - { - // Power off - - // save old phase - if (phase != Phase.offline) - phaseOld = phase; - - // set phase to offline - phase = Phase.offline; - - powerComp.PowerOutput = 0; - } - } - - - // ===================== Inspections ===================== - - /// - /// This string will be shown when the object is selected (focus) - /// - /// - public override string GetInspectString() - { - StringBuilder stringBuilder = new StringBuilder(); - - // Add the inspections string from the base - stringBuilder.Append(base.GetInspectString()); - - // Add your own strings (caution: string shouldn't be more than 5 lines (including base)!) - //stringBuilder.Append("Power output: " + powerComp.powerOutput + " W"); - //stringBuilder.AppendLine(); - stringBuilder.AppendLine(); - stringBuilder.Append(txtStatus.Translate() + " "); // <= TRANSLATION - - // Phase -> Offline: Add text 'Offline' (Translation from active language file) - if (phase == Phase.offline) - stringBuilder.Append(txtOffline.Translate()); // <= TRANSLATION - - // Phase -> Recharging: Add text 'Recharge' (Translation from active language file) - if (phase == Phase.recharging) - stringBuilder.Append(txtRecharging.Translate());// <= TRANSLATION - - // Phase -> Active: Add text 'Active' (Translation from active language file) - if (phase == Phase.active) - stringBuilder.Append(txtActive.Translate()); // <= TRANSLATION - - // return the complete string - return stringBuilder.ToString(); - } - - ///// - ///// This creates selection buttons - ///// - ///// - //public override IEnumerable GetGizmos() - //{ - // IList list = new List(); - - // // Key-Binding F - - // Command_Action optF; - // optF = new Command_Action(); - // optF.icon = UI_DoorLocked; - // optF.defaultDesc = txtLocksUnlocksDoor.Translate(); - // optF.hotKey = KeyCode.F; - // optF.activateSound = SoundDef.Named("Click"); - // optF.action = DoWorkFunction; - // optF.groupKey = 1234567; // unique number, for grouping in game - // // yield return optF; - // list.Add(optF); - - // // Adding the base.GetCommands() when not empty - // IEnumerable baseList = base.GetGizmos(); - // if (baseList != null) - // return list.AsEnumerable().Concat(baseList); - // else - // return list.AsEnumerable(); - //} - - - - } -} diff --git a/Source/Example 1 - ToolTipSample.cs b/Source/Example 1 - ToolTipSample.cs deleted file mode 100644 index 7f7ce31..0000000 --- a/Source/Example 1 - ToolTipSample.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace DarkMatterGenerator -{ - /// - /// ToolTip-Test 1: This is a test for the tooltip-info. Add 'ToolTipSample.Sample' and look at the tooltip - /// - class ToolTipSample - { - - /// - /// ToolTip-Test 2: Do you see this text in your quick-info, when you add it? - /// This way you can make short descriptions of your function. - /// - public static void Sample() - { - //... - return; - } - - } -} diff --git a/Source/Example 2 - Building_WindTurbine.cs b/Source/Example 2 - Building_WindTurbine.cs deleted file mode 100644 index 97c3e88..0000000 --- a/Source/Example 2 - Building_WindTurbine.cs +++ /dev/null @@ -1,544 +0,0 @@ -// This is an advanced example, which shows you, how your own project can look -// I'll use comments only sparcely compared to example 1. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -using UnityEngine; -using Verse; -//using Verse.AI; -//using Verse.Sound; -//using Verse.Noise; -using RimWorld; -//using RimWorld.Planet; -//using RimWorld.SquadAI; - - -namespace WindTurbine -{ - /// - /// This is a wind tubine - /// - /// Haplo - /// Usage of this code is free for all - [StaticConstructorOnStartup] - public class Building_WindTurbineEx : Building - { - - #region Variables - // ================================== - - private bool disableAnimation = false; - private bool disablePowerRandomness = false; - - // This is the graphics container: - public static Graphic[] graphic = null; - - private const int arraySize = 12; // Turn animation off => set to 1 - private string graphicPathAdditionWoNumber = "_frame"; // everything before this will be used for the other file names - - private int activeGraphicFrame = 0; - private int ticksSinceUpdateGraphic; - private int updateAnimationEveryXTicks = 5; // => 60 ticks per second / 12 graphic frames = 5 ticks per frame - - protected CompPowerTrader powerComp; - - private int updateWeatherEveryXTicks = 250; - private int ticksSinceUpdateWeather; - private bool windPathBlocked = false; - private Thing windPathBlocker; - private List windPathCells; - - private const string translateWindPathIsBlocked = "WindTurbineExample_WindPathIsBlocked"; - private const string translateWindPathIsBlockedBy = "WindTurbineExample_WindPathIsBlockedBy"; - - - #endregion - - - #region Setup Work - // ================================== - - /// - /// Do something after the object is spawned into the world - /// - public override void SpawnSetup() - { - base.SpawnSetup(); - - powerComp = base.GetComp(); - powerComp.PowerOn = true; - - CheckWindPath( ref windPathCells, out windPathBlocker ); - - } - - - /// - /// To save and load actual values (savegame-data) - /// - public override void ExposeData() - { - base.ExposeData(); - Scribe_Values.LookValue( ref ticksSinceUpdateWeather, "updateCounter" ); - } - - - /// - /// Import the graphics - /// - private void UpdateGraphics() - { - // Check if graphic is already filled - if (graphic != null && graphic.Length > 0 && graphic[0] != null) - return; - - // resize the graphic array - graphic = new Graphic_Single[arraySize]; - - // Get the base path (without _frameXX) - int indexOf_frame = def.graphicData.texPath.ToLower().LastIndexOf(graphicPathAdditionWoNumber); - string graphicRealPathBase = def.graphicData.texPath.Remove( indexOf_frame ); - - // fill the graphic array - for ( int i = 0; i < arraySize; i++ ) - { - string graphicRealPath = graphicRealPathBase + graphicPathAdditionWoNumber + ( i + 1 ).ToString(); - - // Set the graphic, use additional info from the xml data - graphic[i] = GraphicDatabase.Get(graphicRealPath, def.graphic.Shader, def.graphic.drawSize, def.graphic.Color, def.graphic.ColorTwo); - } - } - - #endregion - - - #region Destroy - // ================================== - - /// - /// Clean up when this is destroyed - /// - public override void Destroy(DestroyMode mode = DestroyMode.Vanish) - { - base.Destroy(mode); - } - - #endregion - - - #region Ticker - // ================================== - - /// - /// This is used, when the Ticker is set to Normal - /// This Tick is done often (60 times per second) - /// - public override void Tick() - { - - // Call work function - DoTickerWork( 1 ); - - base.TickRare(); - } - - - // Here is the main decision work of this building done - private void DoTickerWork( int ticks ) - { - - // Power off OR Roofed Position - if ( powerComp == null || !powerComp.PowerOn || - Find.RoofGrid.Roofed( Position ) ) - { - activeGraphicFrame = 0; - powerComp.PowerOutput = 0; - return; - } - - - // Graphic update - if (!disableAnimation) - { - ticksSinceUpdateGraphic += ticks; - if (ticksSinceUpdateGraphic >= updateAnimationEveryXTicks) - { - ticksSinceUpdateGraphic = 0; - activeGraphicFrame++; - if (activeGraphicFrame >= arraySize) - activeGraphicFrame = 0; - - // Tell the MapDrawer that here is something thats changed - Find.MapDrawer.MapMeshDirty(Position, MapMeshFlag.Things, true, false); - } - } - - // Power update based on weather - ticksSinceUpdateWeather += ticks; - if ( ticksSinceUpdateWeather >= updateWeatherEveryXTicks ) - { - ticksSinceUpdateWeather = 0; - WeatherDef weather = Find.WeatherManager.curWeather; - powerComp.PowerOutput = -( powerComp.Props.basePowerConsumption * weather.windSpeedFactor ); - - // Just for a little bit randomness.. - if (!disablePowerRandomness) - powerComp.PowerOutput += Rand.RangeInclusive(-20, 20); - - // If obstacled, reduce production to 1/3 - windPathBlocked = !CheckWindPath( ref windPathCells, out windPathBlocker ); - if ( windPathBlocked ) - powerComp.PowerOutput /= 3; - - } - } - - - - #endregion - - - #region Graphics - // ================================== - - /// - /// This returns the graphic of the object. - /// The renderer will draw the needed object graphic from here. - /// - public override Graphic Graphic - { - get - { - if (disableAnimation) - return base.Graphic; - - if ( graphic == null || graphic[0] == null ) - { - UpdateGraphics(); - // Graphic couldn't be loaded? (Happends after load for a while) - if ( graphic == null || graphic[0] == null ) - return base.Graphic; - } - - if ( graphic[activeGraphicFrame] != null ) - return graphic[activeGraphicFrame]; - - return base.Graphic; - } - } - - - /// - /// This string will be shown when the object is selected (focus) - /// - /// - public override string GetInspectString() - { - StringBuilder stringBuilder = new StringBuilder(); - - stringBuilder.Append(base.GetInspectString()); - - stringBuilder.AppendLine(); - - if ( windPathBlocked ) - { - stringBuilder.Append(translateWindPathIsBlocked.Translate()); - stringBuilder.AppendLine(); - - if ( windPathBlocker != null ) // If null, then a wind cell is roofed - stringBuilder.Append(translateWindPathIsBlockedBy.Translate() + " " + windPathBlocker.Label); - } - - // return the complete string - return stringBuilder.ToString(); - } - - - /// - /// This will draw extended overlays, like the circle over the orbital trade beacon - /// Here it will be used to show where the free wind path is needed. - /// - public override void DrawExtraSelectionOverlays() - { - //base.DrawExtraSelectionOverlays(); - - if ( windPathCells != null ) - { - GenDraw.DrawFieldEdges( windPathCells ); - } - } - - #endregion - - - #region Functions - - // Check if an object is blocking the wind flow - // Check for Thing.def.altitudeLayer == BuildingTall - private bool CheckWindPath( ref List checkCells, out Thing foundBlocker ) - { - if ( checkCells == null ) - checkCells = new List(); - - if ( checkCells.Count() == 0 ) - { - IEnumerable tmpCells = GetCellsOfConeBeforeAndBehindObject( Position, Rotation, def.size ); - checkCells.AddRange( tmpCells ); - } - - foundBlocker = null; - foreach ( IntVec3 cell in checkCells ) - { - if ( Find.RoofGrid.Roofed( cell ) ) - return false; - - foundBlocker = Find.ThingGrid.ThingsAt(cell).FirstOrDefault( t => t.def.blockWind ); - if ( foundBlocker != null ) - return false; - } - return true; - } - - - // Find the cells in a cone before and behind the wind turbine - // This is a bit difficult to understand. You don't need to understand how this works. - // Just know that this will define the cells, where to look for blocker items - private IEnumerable GetCellsOfConeBeforeAndBehindObject( IntVec3 thingCenter, Rot4 thingRot, IntVec2 thingSize ) - { - - // +++ +xx+ - // +++++ ++xx++ - // XXXXX ++xx++ - // XXXXX ++xx++ - // +++++ ++xx++ - // +++ +xx+ - - // Description: - // X - Object - // + - Returned cells - - int numBaseX1, numBaseX2, numBaseZ1, numBaseZ2; - int num1X1, num1X2, num2X1, num2X2, num1Z1, num1Z2, num2Z1, num2Z2; - int num3X1, num3X2, num3Z1, num3Z2, num4X1, num4X2, num4Z1, num4Z2; - - int extensionLength = 5; - - // Find base points to work with - if ( thingRot == Rot4.North ) - { - numBaseX1 = thingCenter.x - (thingSize.x + 1) / 2 + 1; - numBaseX2 = numBaseX1 + thingSize.x - 1; - numBaseZ1 = thingCenter.z - (thingSize.z + 1) / 2 + 1; - numBaseZ2 = numBaseZ1 + thingSize.z - 1; - } - else if (thingRot == Rot4.East) - { - numBaseX1 = thingCenter.x - (thingSize.z + 1) / 2 + 1; - numBaseX2 = numBaseX1 + thingSize.z - 1; - numBaseZ1 = thingCenter.z - thingSize.x / 2; - numBaseZ2 = numBaseZ1 + thingSize.x - 1; - } - else if (thingRot == Rot4.South) - { - numBaseX1 = thingCenter.x - thingSize.x / 2; - numBaseX2 = numBaseX1 + thingSize.x - 1; - numBaseZ1 = thingCenter.z - thingSize.z / 2; - numBaseZ2 = numBaseZ1 + thingSize.z - 1; - } - else //if ( thingRot == Rot4.West ) - { - numBaseX1 = thingCenter.x - thingSize.z / 2; - numBaseX2 = numBaseX1 + thingSize.z - 1; - numBaseZ1 = thingCenter.z - (thingSize.x + 1) / 2 + 1; - numBaseZ2 = numBaseZ1 + thingSize.x - 1; - } - - IntVec3 intVec3; - - // Get the cells from here if the rotation is north or south - if (Rotation == Rot4.North || Rotation == Rot4.South) - { - // Base cone - num1X1 = numBaseX1 + 0; - num1X2 = numBaseX2 + 0; - num1Z1 = numBaseZ1 - 1; - num1Z2 = numBaseZ2 + 1; - - num2X1 = numBaseX1 + 1; - num2X2 = numBaseX2 - 1; - num2Z1 = numBaseZ1 - 2; - num2Z2 = numBaseZ2 + 2; - - // Extended dome - num3X1 = numBaseX1 + 1; - num3X2 = numBaseX2 - 1; - num3Z1 = numBaseZ1 - (extensionLength + 2); - num3Z2 = numBaseZ1 - (extensionLength - 2); - - num4X1 = numBaseX1 + 1; - num4X2 = numBaseX2 - 1; - num4Z1 = numBaseZ2 + (extensionLength - 2); - num4Z2 = numBaseZ2 + (extensionLength + 2); - - - intVec3 = new IntVec3(num1X1, 0, num1Z1); - do - { - yield return intVec3; - intVec3.x += 1; - } while (intVec3.x <= num1X2); - - intVec3 = new IntVec3(num2X1, 0, num2Z1); - do - { - yield return intVec3; - intVec3.x += 1; - } while (intVec3.x <= num2X2); - - - intVec3 = new IntVec3(num1X1, 0, num1Z2); - do - { - yield return intVec3; - intVec3.x += 1; - } while (intVec3.x <= num1X2); - - intVec3 = new IntVec3(num2X1, 0, num2Z2); - do - { - yield return intVec3; - intVec3.x += 1; - } while (intVec3.x <= num2X2); - - - // Extended dome - intVec3 = new IntVec3(num3X1 - 1, 0, num3Z1); - while (intVec3.x < num3X2 || intVec3.z < num3Z2) - { - if (intVec3.x < num3X2) - { - intVec3.x += 1; - } - else if (intVec3.z <= num3Z2) - { - intVec3.x = num3X1; - intVec3.z += 1; - } - yield return intVec3; - } - - intVec3 = new IntVec3(num4X1 - 1, 0, num4Z1); - while (intVec3.x < num4X2 || intVec3.z < num4Z2) - { - if (intVec3.x < num4X2) - { - intVec3.x += 1; - } - else if (intVec3.z <= num4Z2) - { - intVec3.x = num4X1; - intVec3.z += 1; - } - yield return intVec3; - } - - } - - // Get the cells from here if the rotation is east or west - if (Rotation == Rot4.East || Rotation == Rot4.West) - { - // Base cone - num1X1 = numBaseX1 - 1; - num1X2 = numBaseX2 + 1; - num1Z1 = numBaseZ1 + 0; - num1Z2 = numBaseZ2 + 0; - - num2X1 = numBaseX1 - 2; - num2X2 = numBaseX2 + 2; - num2Z1 = numBaseZ1 + 1; - num2Z2 = numBaseZ2 - 1; - - // Extended dome - num3X1 = numBaseX1 - (extensionLength + 2); - num3X2 = numBaseX1 - (extensionLength - 2); - num3Z1 = numBaseZ1 + 1; - num3Z2 = numBaseZ2 - 1; - - num4X1 = numBaseX2 + (extensionLength - 2); - num4X2 = numBaseX2 + (extensionLength + 2); - num4Z1 = numBaseZ1 + 1; - num4Z2 = numBaseZ2 - 1; - - - intVec3 = new IntVec3(num1X1, 0, num1Z1); - do - { - yield return intVec3; - intVec3.z += 1; - } while (intVec3.z <= num1Z2); - - intVec3 = new IntVec3(num2X1, 0, num2Z1); - do - { - yield return intVec3; - intVec3.z += 1; - } while (intVec3.z <= num2Z2); - - - intVec3 = new IntVec3(num1X2, 0, num1Z1); - do - { - yield return intVec3; - intVec3.z += 1; - } while (intVec3.z <= num1Z2); - - intVec3 = new IntVec3(num2X2, 0, num2Z1); - do - { - yield return intVec3; - intVec3.z += 1; - } while (intVec3.z <= num2Z2); - - - // Extended dome - intVec3 = new IntVec3(num3X1 - 1, 0, num3Z1); - while (intVec3.x < num3X2 || intVec3.z < num3Z2) - { - if (intVec3.x < num3X2) - { - intVec3.x += 1; - } - else if (intVec3.z <= num3Z2) - { - intVec3.x = num3X1; - intVec3.z += 1; - } - yield return intVec3; - } - - intVec3 = new IntVec3(num4X1 - 1, 0, num4Z1); - while (intVec3.x < num4X2 || intVec3.z < num4Z2) - { - if (intVec3.x < num4X2) - { - intVec3.x += 1; - } - else if (intVec3.z <= num4Z2) - { - intVec3.x = num4X1; - intVec3.z += 1; - } - yield return intVec3; - } - - } - } - - - #endregion - - } -} diff --git a/Source/MigrationBackup/3bdc311f/RimWriter/NuGetUpgradeLog.html b/Source/MigrationBackup/3bdc311f/RimWriter/NuGetUpgradeLog.html new file mode 100644 index 0000000..dca9645 --- /dev/null +++ b/Source/MigrationBackup/3bdc311f/RimWriter/NuGetUpgradeLog.html @@ -0,0 +1,162 @@ + + + + + NuGetMigrationLog +

    + NuGet Migration Report - RimWriter

    Overview

    Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
    + If you run into any problems, have feedback, questions, or concerns, please + file an issue on the NuGet GitHub repository.

    Packages processed

    Top-level dependencies:

    Package IdVersion
    Lib.Harmony + v2.0.0.9

    Transitive dependencies:

    Package IdVersion
    + No transitive dependencies found. +

    Package compatibility issues

    Description
    + No issues were found. +
    \ No newline at end of file diff --git a/Source/MigrationBackup/3bdc311f/RimWriter/RimWriter.csproj b/Source/MigrationBackup/3bdc311f/RimWriter/RimWriter.csproj new file mode 100644 index 0000000..fff30d9 --- /dev/null +++ b/Source/MigrationBackup/3bdc311f/RimWriter/RimWriter.csproj @@ -0,0 +1,79 @@ + + + + + Debug + AnyCPU + {A36BEEB2-7379-475B-B537-827E34571962} + Library + Properties + RimWriter + RimWriter + v3.5 + 512 + + + + + false + none + false + ..\Assemblies\ + DEBUG;TRACE + prompt + 4 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + packages\Lib.Harmony.2.0.0.9\lib\net35\0Harmony.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/MigrationBackup/3bdc311f/RimWriter/packages.config b/Source/MigrationBackup/3bdc311f/RimWriter/packages.config new file mode 100644 index 0000000..6ebc5ef --- /dev/null +++ b/Source/MigrationBackup/3bdc311f/RimWriter/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/ModMain.cs b/Source/ModMain.cs index dfc7d15..40c57a5 100644 --- a/Source/ModMain.cs +++ b/Source/ModMain.cs @@ -1,5 +1,5 @@ using System; -using Harmony; +using HarmonyLib; using RimWorld; using UnityEngine; using Verse; @@ -39,6 +39,7 @@ public override void DoSettingsWindowContents(Rect inRect) } } + public override void WriteSettings() { Scribe_Values.Look(ref this.simpleRecipes, "complexRecipes", false); @@ -47,7 +48,7 @@ public override void WriteSettings() private void ApplySettings() { - Predicate woodPred = x => x.thingDef == ThingDefOf.WoodLog; + Predicate woodPred = x => x.thingDef == GetDef("WoodLog"); Predicate pagesPred = x => x.thingDef == GetDef("Jecrell_PageBook") || x.thingDef == GetDef("Jecrell_PageHandwritten") || @@ -55,7 +56,7 @@ private void ApplySettings() x.thingDef == GetDef("Jecrell_PageJournal") || x.thingDef == GetDef("Jecrell_Page"); var pagesTDC = new ThingDefCountClass(GetDef("Jecrell_Page"), 200); - var logsTDC = new ThingDefCountClass(ThingDefOf.WoodLog, 10); + var logsTDC = new ThingDefCountClass(GetDef("WoodLog"), 10); if (!simpleRecipes) { if (GetDef("Jecrell_BookJournal") is ThingDef bookJournal) diff --git a/Source/PawnGroupMaker_Smuggler.cs b/Source/PawnGroupMaker_Smuggler.cs deleted file mode 100644 index 5b88368..0000000 --- a/Source/PawnGroupMaker_Smuggler.cs +++ /dev/null @@ -1,30 +0,0 @@ -//What I need -using System; -using System.Collections.Generic; -using System.Linq; -using System.Diagnostics; -using System.Text; -//Maybe? -using RimWorld; -using RimWorld.Planet; -using Verse.AI; -using UnityEngine; -using Verse; - -namespace RimWorld -{ - public class PawnGroupMaker_Smuggler : PawnGroupMaker_Trader - { - - private Pawn GenerateTrader(IncidentParms parms, TraderKindDef traderKind) - { - Pawn pawn = PawnGenerator.GeneratePawn(this.traders.RandomElementByWeight((PawnGenOption x) => (float)x.selectionWeight).kind, parms.faction); - pawn.mindState.wantsToTradeWithColony = true; - PawnComponentsUtility.AddAndRemoveDynamicComponents(pawn, true); - pawn.trader.traderKind = traderKind; - this.PostGenerate(pawn); - return pawn; - } - - } -} diff --git a/Source/RimWriter.csproj b/Source/RimWriter.csproj index e3697b9..fa31f11 100644 --- a/Source/RimWriter.csproj +++ b/Source/RimWriter.csproj @@ -9,7 +9,7 @@ Properties RimWriter RimWriter - v3.5 + v4.7.2 512 @@ -18,11 +18,12 @@ false none false - ..\Assemblies\ + ..\1.1\Assemblies\ DEBUG;TRACE prompt 4 true + false pdbonly @@ -31,47 +32,45 @@ TRACE prompt 4 + false - - ..\..\Call-of-Cthulhu---Cults\Assemblies\0Harmony.dll - - - ..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll - False - - - Source-DLLs\UnityEngine.dll - False - - - - + + + - + - - - + + + - + - - - + + + - + + + + + 1.1.2589 + + + 2.0.0.9 +