mirror of
https://git.tonybark.com/tonytins/CyberBits.git
synced 2026-02-10 09:34:48 -05:00
Separated bits and add on selection (cyberware, etc.)
- Moved json files to /data directory - Added Getting Started section in README - JSON Serialization can now be globally accessed
This commit is contained in:
parent
b24157309d
commit
533e1bb076
9 changed files with 153 additions and 19 deletions
119
ASSET-LICENSE
Normal file
119
ASSET-LICENSE
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
Creative Commons Legal Code
|
||||
|
||||
CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES
|
||||
NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE
|
||||
AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
|
||||
ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE
|
||||
OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS
|
||||
LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION
|
||||
OR WORKS PROVIDED HEREUNDER.
|
||||
|
||||
Statement of Purpose
|
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer exclusive
|
||||
Copyright and Related Rights (defined below) upon the creator and subsequent
|
||||
owner(s) (each and all, an "owner") of an original work of authorship and/or
|
||||
a database (each, a "Work").
|
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||
purpose of contributing to a commons of creative, cultural and scientific
|
||||
works ("Commons") that the public can reliably and without fear of later claims
|
||||
of infringement build upon, modify, incorporate in other works, reuse and
|
||||
redistribute as freely as possible in any form whatsoever and for any purposes,
|
||||
including without limitation commercial purposes. These owners may contribute
|
||||
to the Commons to promote the ideal of a free culture and the further production
|
||||
of creative, cultural and scientific works, or to gain reputation or greater
|
||||
distribution for their Work in part through the use and efforts of others.
|
||||
|
||||
For these and/or other purposes and motivations, and without any expectation
|
||||
of additional consideration or compensation, the person associating CC0 with
|
||||
a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||
and publicly distribute the Work under its terms, with knowledge of his or
|
||||
her Copyright and Related Rights in the Work and the meaning and intended
|
||||
legal effect of CC0 on those rights.
|
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be protected
|
||||
by copyright and related or neighboring rights ("Copyright and Related Rights").
|
||||
Copyright and Related Rights include, but are not limited to, the following:
|
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||
and translate a Work;
|
||||
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||
depicted in a Work;
|
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work, subject
|
||||
to the limitations in paragraph 4(a), below;
|
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||
in a Work;
|
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal protection
|
||||
of databases, and under any national implementation thereof, including any
|
||||
amended or successor version of such directive); and
|
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the world
|
||||
based on applicable law or treaty, and any national implementations thereof.
|
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||
and Related Rights and associated claims and causes of action, whether now
|
||||
known or unknown (including existing as well as future claims and causes of
|
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||
duration provided by applicable law or treaty (including future time extensions),
|
||||
(iii) in any current or future medium and for any number of copies, and (iv)
|
||||
for any purpose whatsoever, including without limitation commercial, advertising
|
||||
or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the
|
||||
benefit of each member of the public at large and to the detriment of Affirmer's
|
||||
heirs and successors, fully intending that such Waiver shall not be subject
|
||||
to revocation, rescission, cancellation, termination, or any other legal or
|
||||
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||
as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||
shall be preserved to the maximum extent permitted taking into account Affirmer's
|
||||
express Statement of Purpose. In addition, to the extent the Waiver is so
|
||||
judged Affirmer hereby grants to each affected person a royalty-free, non
|
||||
transferable, non sublicensable, non exclusive, irrevocable and unconditional
|
||||
license to exercise Affirmer's Copyright and Related Rights in the Work (i)
|
||||
in all territories worldwide, (ii) for the maximum duration provided by applicable
|
||||
law or treaty (including future time extensions), (iii) in any current or
|
||||
future medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||
including without limitation commercial, advertising or promotional purposes
|
||||
(the "License"). The License shall be deemed effective as of the date CC0
|
||||
was applied by Affirmer to the Work. Should any part of the License for any
|
||||
reason be judged legally invalid or ineffective under applicable law, such
|
||||
partial invalidity or ineffectiveness shall not invalidate the remainder of
|
||||
the License, and in such case Affirmer hereby affirms that he or she will
|
||||
not (i) exercise any of his or her remaining Copyright and Related Rights
|
||||
in the Work or (ii) assert any associated claims and causes of action with
|
||||
respect to the Work, in either case contrary to Affirmer's express Statement
|
||||
of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,
|
||||
licensed or otherwise affected by this document.
|
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||
including without limitation warranties of title, merchantability, fitness
|
||||
for a particular purpose, non infringement, or the absence of latent or other
|
||||
defects, accuracy, or the present or absence of errors, whether or not discoverable,
|
||||
all to the greatest extent permissible under applicable law.
|
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without limitation
|
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims
|
||||
responsibility for obtaining any necessary consents, permissions or other
|
||||
rights required for any use of the Work.
|
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a party
|
||||
to this document and has no duty or obligation with respect to this CC0 or
|
||||
use of the Work.
|
||||
6
CyberBits/Addon.cs
Normal file
6
CyberBits/Addon.cs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
namespace Cyberbits;
|
||||
|
||||
public record Addon(
|
||||
[property: JsonPropertyName("cyberware")]
|
||||
string[] Cyberware
|
||||
);
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
namespace Cyberbits;
|
||||
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
public record Bits(
|
||||
[property: JsonPropertyName("image")]
|
||||
string Image,
|
||||
|
|
@ -10,7 +8,5 @@ public record Bits(
|
|||
[property: JsonPropertyName("base")]
|
||||
string[] Base,
|
||||
[property: JsonPropertyName("style")]
|
||||
string[] Style,
|
||||
[property: JsonPropertyName("cyberware")]
|
||||
string[] Cyberware
|
||||
);
|
||||
string[] Style
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
global using System;
|
||||
global using System.Text.Json;
|
||||
global using System.Text.Json.Serialization;
|
||||
global using Godot;
|
||||
global using Engine = twodog.Engine;
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
using System.Text.Json;
|
||||
using Cyberbits;
|
||||
using Cyberbits;
|
||||
|
||||
using var engine = new Engine("Cyberbits", Engine.ResolveProjectDir());
|
||||
using var godot = engine.Start();
|
||||
|
|
@ -13,20 +12,23 @@ var bitsSelection = engine.Tree.CurrentScene.GetNode<OptionButton>("BitsSelectio
|
|||
var unlockedFeat = engine.Tree.CurrentScene.GetNode<Label>("UnlockedFeat");
|
||||
var genitalStyles = engine.Tree.CurrentScene.GetNode<ItemList>("GenitalList");
|
||||
|
||||
var jsonContents = FileFetcher.LoadTextFile("cock.json");
|
||||
// TODO: Figure out how to get this work.
|
||||
var baseContents = FileFetcher.LoadTextFile("data/cock.json");
|
||||
var addonContents = FileFetcher.LoadTextFile("data/addon.json");
|
||||
|
||||
// TODO: Figure this out.
|
||||
bitsSelection.ItemSelected += index =>
|
||||
{
|
||||
jsonContents = index switch
|
||||
baseContents = index switch
|
||||
{
|
||||
1 => jsonContents = FileFetcher.LoadTextFile("pussy.json"),
|
||||
_ => jsonContents = FileFetcher.LoadTextFile("cock.json")
|
||||
1 => baseContents = FileFetcher.LoadTextFile("data/pussy.json"),
|
||||
_ => baseContents = FileFetcher.LoadTextFile("data/cock.json")
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
var bits = JsonSerializer.Deserialize<Bits>(jsonContents);
|
||||
var bits = JsonSerializer.Deserialize<Bits>(baseContents);
|
||||
var addon = JsonSerializer.Deserialize<Addon>(addonContents);
|
||||
|
||||
bitsImage.Texture.ResourcePath = bits.Image;
|
||||
unlockedFeat.Text = $"Feat: {bits?.Feat}";
|
||||
foreach (var selection in bits.Base)
|
||||
|
|
|
|||
3
CyberBits/project/data/addons.json
Normal file
3
CyberBits/project/data/addons.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"cyberware": ["Piercings", "Datajack"]
|
||||
}
|
||||
|
|
@ -3,5 +3,5 @@
|
|||
"feat": "Aim Piss",
|
||||
"base": ["Au Natural", "Les Americaines"],
|
||||
"style": ["Bioware", "Cyberware"],
|
||||
"cyberware": ["Piecings", "Datajack"]
|
||||
"cyberware": ["Piercings", "Datajack"]
|
||||
}
|
||||
|
|
@ -2,6 +2,5 @@
|
|||
"image": "res://sprites/pussy.jpg",
|
||||
"feat": "Boom of the Mother Goddness",
|
||||
"base": ["Au Natural", "Les Americaines"],
|
||||
"style": ["Bioware", "Cyberware"],
|
||||
"cyberware": ["Piecings", "Datajack"]
|
||||
"style": ["Bioware", "Cyberware"]
|
||||
}
|
||||
|
|
@ -2,6 +2,13 @@
|
|||
|
||||
Loosely based on [Penis 2.0.77](https://glaiveguisarme.itch.io/penis-two-point-zero-point-seven-seven), CyberBits lets you customize your character's bits with the latest cyberware.
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- .NET 8 or later
|
||||
- [Godot Mono](https://godotengine.org/)
|
||||
|
||||
## License
|
||||
|
||||
I license this project under the GPL-3.0 license - see [LICENSE](LICENSE) for details.
|
||||
Loading…
Add table
Add a link
Reference in a new issue