diff --git a/macrovision.html b/macrovision.html
index e9c60480..506dd47b 100644
--- a/macrovision.html
+++ b/macrovision.html
@@ -13,6 +13,7 @@
+
diff --git a/macrovision.js b/macrovision.js
index f1b68f49..51a97c17 100644
--- a/macrovision.js
+++ b/macrovision.js
@@ -2207,6 +2207,7 @@ function prepareEntities() {
availableEntities["landmarks"] = makeLandmarks();
availableEntities["naturals"] = makeNaturals();
availableEntities["objects"] = makeObjects();
+ availableEntities["dildos"] = makeDildos();
availableEntities["pokemon"] = makePokemon();
availableEntities["species"] = makeSpecies();
availableEntities["vehicles"] = makeVehicles();
diff --git a/media/attribution.js b/media/attribution.js
index 67eb8ac5..ed05b255 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -9625,6 +9625,13 @@ const attributionData = {
"trippster890"
]
},
+ {
+ prefix: "./media/dildos/chance/",
+ all: "https://bad-dragon.com/products/chanceunflared",
+ authors: [
+ "bad-dragon"
+ ]
+ },
//characters
{
prefix: "./media/fiction/halo/halo/",
@@ -13349,6 +13356,10 @@ const attributionData = {
"name": "Pulex",
"url": "https://www.furaffinity.net/user/pulex/",
},
+ "bad-dragon": {
+ "name": "Bad Dragon",
+ "url": "https://bad-dragon.com/",
+ },
}
}
diff --git a/media/dildos/chance/front.svg b/media/dildos/chance/front.svg
new file mode 100644
index 00000000..d44bb98c
--- /dev/null
+++ b/media/dildos/chance/front.svg
@@ -0,0 +1,1598 @@
+
+
+
diff --git a/media/dildos/chance/head.svg b/media/dildos/chance/head.svg
new file mode 100644
index 00000000..20378ce3
--- /dev/null
+++ b/media/dildos/chance/head.svg
@@ -0,0 +1,278 @@
+
+
+
diff --git a/media/dildos/chance/side.svg b/media/dildos/chance/side.svg
new file mode 100644
index 00000000..babc715b
--- /dev/null
+++ b/media/dildos/chance/side.svg
@@ -0,0 +1,1672 @@
+
+
+
diff --git a/media/dildos/chance/top.svg b/media/dildos/chance/top.svg
new file mode 100644
index 00000000..15a12f48
--- /dev/null
+++ b/media/dildos/chance/top.svg
@@ -0,0 +1,1069 @@
+
+
+
diff --git a/presets/dildos.js b/presets/dildos.js
new file mode 100644
index 00000000..aec25d8c
--- /dev/null
+++ b/presets/dildos.js
@@ -0,0 +1,62 @@
+
+
+function makeDildo(name, info, sizes) {
+ const views = {};
+ let folder = name.replace(/ /g, "-").toLowerCase() + "/";
+ info.forEach(entry => {
+ let src = "./media/dildos/" + folder + entry[0].replace(/ /g, "-").toLowerCase() + ".svg";
+
+ views[entry[0]] = {
+ height: math.unit(entry[1], entry[2]),
+ image: { source: src },
+ name: entry[0],
+ rename: true
+ }
+ });
+
+ return {
+ name: name,
+ constructor: () => {
+ const maker = makeObject(
+ name,
+ views
+ );
+
+ maker.sizes = [];
+
+ sizes.forEach(size => {
+ maker.sizes.push({
+ name: size[0],
+ height: math.unit(size[1], size[2])
+ })
+ })
+
+ maker.sizes[maker.sizes.length - 1].default = true;
+
+ return maker;
+ }
+ }
+}
+
+
+function makeDildos() {
+ const results = [];
+
+ results.push(makeDildo(
+ "Chance",
+ [
+ ["Side", 17.5, "inches"],
+ ["Front", 17.5, "inches"],
+ ["Top", 7.91, "inches"],
+ ["Head", 2.72, "inches"]
+ ],
+ [
+ ["Small", 8, "inches"],
+ ["Medium", 11.5, "inches"],
+ ["Large", 14, "inches"],
+ ["Extra Large", 17.5, "inches"]
+ ]
+ ))
+
+ return results;
+}
\ No newline at end of file