v1.4.4
29
assets/devel/objects/bugs/moondancer/default.frames
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [10, 14],
|
||||
"dimensions" : [12, 1],
|
||||
"names" : [
|
||||
[ "default.0", "default.1", "default.2", "default.3", "default.4", "default.11", "default.12", "default.13", "default.14", "default.18", "default.19", "default.26"]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.0",
|
||||
"default.5" : "default.4",
|
||||
"default.6" : "default.4",
|
||||
"default.7" : "default.4",
|
||||
"default.8" : "default.4",
|
||||
"default.9" : "default.4",
|
||||
"default.10" : "default.4",
|
||||
"default.15" : "default.14",
|
||||
"default.16" : "default.14",
|
||||
"default.17" : "default.14",
|
||||
"default.20" : "default.19",
|
||||
"default.21" : "default.19",
|
||||
"default.22" : "default.19",
|
||||
"default.23" : "default.19",
|
||||
"default.24" : "default.19",
|
||||
"default.25" : "default.19"
|
||||
}
|
||||
}
|
33
assets/devel/objects/bugs/moondancer/moondancer.object
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"objectName" : "moondancer",
|
||||
"colonyTags" : ["nature"],
|
||||
"rarity" : "Common",
|
||||
"price" : 50,
|
||||
"printable" : false,
|
||||
"description" : "The patterns on this bioliumescent bug's back will continously change throughout its life.",
|
||||
"shortdescription" : "moondancer",
|
||||
"race" : "generic",
|
||||
"category" : "bug",
|
||||
"collectablesOnPickup" : { "bugs" : "moondancer" },
|
||||
|
||||
"itemTags" : [ "bug" ],
|
||||
|
||||
"lightColor" : [50, 72, 77],
|
||||
"flickerDistance" : 0.1,
|
||||
"flickerStrength" : 0.05,
|
||||
"flickerTiming" : 4,
|
||||
|
||||
"largeImage" : "moondancericon.png",
|
||||
"inventoryIcon" : "moondancericon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"imageLayers" : [ { "image" : "moondancer.png:<color>.<frame>", "fullbright" : true }, { "image" : "moondancerlit.png:<color>.<frame>" } ],
|
||||
"imagePosition" : [-1, 0],
|
||||
"frames" : 27,
|
||||
"animationCycle" : 2.3,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
]
|
||||
}
|
BIN
assets/devel/objects/bugs/moondancer/moondancer.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/devel/objects/bugs/moondancer/moondancericon.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
assets/devel/objects/bugs/moondancer/moondancerlit.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
29
assets/devel/objects/chattestbug/chattestbug.frames
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [10, 14],
|
||||
"dimensions" : [12, 1],
|
||||
"names" : [
|
||||
[ "default.0", "default.1", "default.2", "default.3", "default.4", "default.11", "default.12", "default.13", "default.14", "default.18", "default.19", "default.26"]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.0",
|
||||
"default.5" : "default.4",
|
||||
"default.6" : "default.4",
|
||||
"default.7" : "default.4",
|
||||
"default.8" : "default.4",
|
||||
"default.9" : "default.4",
|
||||
"default.10" : "default.4",
|
||||
"default.15" : "default.14",
|
||||
"default.16" : "default.14",
|
||||
"default.17" : "default.14",
|
||||
"default.20" : "default.19",
|
||||
"default.21" : "default.19",
|
||||
"default.22" : "default.19",
|
||||
"default.23" : "default.19",
|
||||
"default.24" : "default.19",
|
||||
"default.25" : "default.19"
|
||||
}
|
||||
}
|
37
assets/devel/objects/chattestbug/chattestbug.object
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"objectName" : "chattestbug",
|
||||
"category" : "other",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Common",
|
||||
"price" : 50,
|
||||
"printable" : false,
|
||||
"description" : "A steaming cup of Earl Grey.",
|
||||
"shortdescription" : "Chat Test Bug",
|
||||
"race" : "generic",
|
||||
|
||||
"inventoryIcon" : "chattestbugicon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "chattestbug.png:<color>.<frame>",
|
||||
"imagePosition" : [-1, 0],
|
||||
"frames" : 27,
|
||||
"animationCycle" : 2.3,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "/scripts/chattest.lua" ],
|
||||
"scriptDelta" : 10,
|
||||
"chatOptions" : [
|
||||
"Short",
|
||||
"This should be approximately one full line of chat",
|
||||
"Yo dawg, I heard you liked long chat messages so I put 'this is a long chat message' in your long chat message so your chat messages can be long while you chat your long messages"
|
||||
],
|
||||
"portraitChatOptions" : [
|
||||
["Hey, listen!", "/interface/chatbubbles/portraittest.png"],
|
||||
["Now this is a story all about how my life got flip turned upside down and I'd like to take a minute ^green;just sit right there^white; I'll tell you how I became the prince of a town called ^orange;Bel Aire^white;.", "/interface/chatbubbles/portraittest.png"]
|
||||
],
|
||||
"mouthPosition" : [0, 0]
|
||||
}
|
BIN
assets/devel/objects/chattestbug/chattestbug.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/devel/objects/chattestbug/chattestbugicon.png
Normal file
After Width: | Height: | Size: 325 B |
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [24, 24],
|
||||
"dimensions" : [1, 1],
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
}
|
||||
}
|
16
assets/devel/objects/collisionripper/collisionripper.lua
Normal file
|
@ -0,0 +1,16 @@
|
|||
function init()
|
||||
local materialSpaces = {}
|
||||
for x = -1, 1 do
|
||||
for y = -1, 1 do
|
||||
if x ~= 0 or y ~= 0 then
|
||||
table.insert(materialSpaces, {{x, y}, "metamaterial:objectsolid"})
|
||||
end
|
||||
end
|
||||
end
|
||||
object.setMaterialSpaces(materialSpaces)
|
||||
end
|
||||
|
||||
function update(dt)
|
||||
object.setMaterialSpaces({})
|
||||
object.smash()
|
||||
end
|
24
assets/devel/objects/collisionripper/collisionripper.object
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"objectName" : "collisionripper",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Common",
|
||||
"category" : "other",
|
||||
"price" : 0,
|
||||
|
||||
"description" : "Clobbers nearby collision spaces to get rid of junk collisions.",
|
||||
"shortdescription" : "Collision Ripper",
|
||||
"race" : "generic",
|
||||
|
||||
"inventoryIcon" : "collisionrippericon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"image" : "collisionripper.png",
|
||||
"imagePosition" : [-8, -8],
|
||||
|
||||
"spaces" : [[0, 0]],
|
||||
"anchors" : [ ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "collisionripper.lua" ]
|
||||
}
|
BIN
assets/devel/objects/collisionripper/collisionripper.png
Normal file
After Width: | Height: | Size: 221 B |
BIN
assets/devel/objects/collisionripper/collisionrippericon.png
Normal file
After Width: | Height: | Size: 228 B |
11
assets/devel/objects/dpstestdummy/dpstestdummy.frames
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [32, 32],
|
||||
"dimensions" : [1, 1],
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
|
||||
}
|
||||
}
|
34
assets/devel/objects/dpstestdummy/dpstestdummy.object
Normal file
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"objectName" : "dpstestdummy",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Common",
|
||||
"description" : "This straw dummy is filled with advanced sensors to measure incoming damage.",
|
||||
"shortdescription" : "DPS Test Dummy",
|
||||
"race" : "glitch",
|
||||
"category" : "decorative",
|
||||
"price" : 70,
|
||||
|
||||
"inventoryIcon" : "dpstestdummyicon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "dpstestdummy.png:<color>",
|
||||
|
||||
"imagePosition" : [-16, -0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 1.0,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"smashable" : true,
|
||||
"smashDropOptions" : [[["dpstestdummy"]]],
|
||||
"health" : 10000,
|
||||
"damageTeam" : {
|
||||
"type" : "indiscriminate"
|
||||
},
|
||||
|
||||
"scripts" : ["recount.lua"],
|
||||
"scriptDelta" : 1
|
||||
}
|
BIN
assets/devel/objects/dpstestdummy/dpstestdummy.png
Normal file
After Width: | Height: | Size: 818 B |
BIN
assets/devel/objects/dpstestdummy/dpstestdummyicon.png
Normal file
After Width: | Height: | Size: 310 B |
55
assets/devel/objects/dpstestdummy/recount.lua
Normal file
|
@ -0,0 +1,55 @@
|
|||
function init()
|
||||
self.maxHealth = config.getParameter("health")
|
||||
|
||||
self.autoResetTime = config.getParameter("autoResetTime", 7)
|
||||
self.autoResetTimer = 0
|
||||
|
||||
reset()
|
||||
|
||||
object.setInteractive(true)
|
||||
end
|
||||
|
||||
function update(dt)
|
||||
local currentHealth = object.health()
|
||||
|
||||
self.autoResetTimer = math.max(0, self.autoResetTimer - dt)
|
||||
if self.autoResetTimer == 0 then
|
||||
reset()
|
||||
end
|
||||
|
||||
if currentHealth < self.maxHealth then
|
||||
self.meterActive = true
|
||||
self.autoResetTimer = self.autoResetTime
|
||||
end
|
||||
|
||||
if self.meterActive then
|
||||
self.meterTimer = self.meterTimer + dt
|
||||
self.totalDamage = self.totalDamage + (self.maxHealth - currentHealth)
|
||||
object.setHealth(self.maxHealth)
|
||||
end
|
||||
|
||||
drawOutput()
|
||||
end
|
||||
|
||||
function onInteraction(args)
|
||||
if self.meterActive then
|
||||
reset()
|
||||
else
|
||||
object.smash()
|
||||
end
|
||||
end
|
||||
|
||||
function reset()
|
||||
self.meterActive = false
|
||||
self.meterTimer = 0
|
||||
self.totalDamage = 0
|
||||
object.setHealth(self.maxHealth)
|
||||
end
|
||||
|
||||
function drawOutput()
|
||||
local pos = entity.position()
|
||||
pos = {pos[1] - 1.5, pos[2] + 4}
|
||||
local dps = self.meterTimer > 0 and (self.totalDamage / self.meterTimer) or 0
|
||||
local outputString = string.format("%.1f damage over\n%.1f seconds\n%.1f DPS", self.totalDamage, self.meterTimer, dps)
|
||||
world.debugText(outputString, pos, "white")
|
||||
end
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"animatedParts" : {
|
||||
"stateTypes" : {
|
||||
"switchState" : {
|
||||
"default" : "off",
|
||||
"states" : {
|
||||
"off" : {},
|
||||
"on" : {
|
||||
"frames" : 3,
|
||||
"cycle" : 0.5,
|
||||
"mode" : "loop"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"parts" : {
|
||||
"bg" : {
|
||||
"properties" : {
|
||||
"centered" : false
|
||||
},
|
||||
|
||||
"partStates" : {
|
||||
"switchState" : {
|
||||
"off" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:<color>.off"
|
||||
}
|
||||
},
|
||||
|
||||
"on" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:<color>.<frame>",
|
||||
"fullbright" : true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fg" : {
|
||||
"properties" : {
|
||||
"centered" : false,
|
||||
"zLevel" : 1
|
||||
},
|
||||
|
||||
"partStates" : {
|
||||
"switchState" : {
|
||||
"off" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:<color>.off"
|
||||
}
|
||||
},
|
||||
|
||||
"on" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:<color>.<frame>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [160, 32],
|
||||
"dimensions" : [1, 4],
|
||||
"names" : [
|
||||
[ "default.1" ],
|
||||
[ "default.2" ],
|
||||
[ "default.3" ],
|
||||
[ "default.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"default.on" : "default.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
"objectName" : "referencegenerator",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Legendary",
|
||||
"description" : "-todo-",
|
||||
"shortdescription" : "Reference Generator",
|
||||
"race" : "generic",
|
||||
"price" : 1000,
|
||||
"lightColor" : [78, 111, 128],
|
||||
"category" : "wire",
|
||||
"printable" : false,
|
||||
|
||||
"apexDescription" : "-todo-",
|
||||
"avianDescription" : "-todo-",
|
||||
"floranDescription" : "-todo-",
|
||||
"glitchDescription" : "-todo-",
|
||||
"humanDescription" : "-todo-",
|
||||
"hylotlDescription" : "-todo-",
|
||||
|
||||
"inventoryIcon" : "referencegeneratoricon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"image" : "referencegenerator.png:<color>.<frame>",
|
||||
"flipImages" : true,
|
||||
"direction" : "left",
|
||||
|
||||
"imagePosition" : [-80, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 1.0,
|
||||
|
||||
"lightPosition" : [-2, 2],
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
},
|
||||
{
|
||||
"image" : "referencegenerator.png:<color>.<frame>",
|
||||
"direction" : "right",
|
||||
|
||||
"imagePosition" : [-80, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 1.0,
|
||||
|
||||
"lightPosition" : [1, 2],
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "/objects/wired/switch/switch.lua" ],
|
||||
"scriptDelta" : 5,
|
||||
|
||||
"animation" : "referencegenerator.animation",
|
||||
"animationCustom" : {
|
||||
"sounds" : {
|
||||
"on" : [ "/sfx/objects/apexconsole2switch.ogg" ],
|
||||
"off" : [ "/sfx/objects/apexconsole2switch.ogg" ]
|
||||
}
|
||||
},
|
||||
|
||||
"animationParts" : {
|
||||
"bg" : "referencegenerator.png",
|
||||
"fg" : "referencegeneratorlit.png"
|
||||
},
|
||||
|
||||
"animationPosition" : [-80, 0],
|
||||
|
||||
"outputNodes" : [ [0, 0] ],
|
||||
"inputNodes" : [ [0, 2] ]
|
||||
}
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 269 B |
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [160, 32],
|
||||
"dimensions" : [1, 4],
|
||||
"names" : [
|
||||
[ "default.1" ],
|
||||
[ "default.2" ],
|
||||
[ "default.3" ],
|
||||
[ "default.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"default.on" : "default.1"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 2 KiB |
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"objectName" : "giantbackgroundobject",
|
||||
"category" : "other",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Common",
|
||||
"description" : "What a mess.",
|
||||
"shortdescription" : "Giant Background Object",
|
||||
"scannable" : false,
|
||||
"printable" : false,
|
||||
"race" : "human",
|
||||
|
||||
"inventoryIcon" : "icon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "giantbackgroundobject.png",
|
||||
"imagePosition" : [-1024, -1024],
|
||||
"renderLayer" : "BackgroundOverlay",
|
||||
"metaBoundBox" : [-128, -128, 128, 128],
|
||||
|
||||
"anchors" : [ ]
|
||||
}
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 78 KiB |
BIN
assets/devel/objects/giantbackgroundobject/icon.png
Normal file
After Width: | Height: | Size: 273 B |
10
assets/devel/objects/greycapsule/greycapsule.frames
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [8, 12],
|
||||
"dimensions" : [1, 1],
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
}
|
||||
}
|
22
assets/devel/objects/greycapsule/greycapsule.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require "/scripts/util.lua"
|
||||
|
||||
function die(smash)
|
||||
local pos = entity.position()
|
||||
local spreadRange = config.getParameter("spreadRange", 2)
|
||||
local candidateSpaces = {}
|
||||
for x = pos[1] - spreadRange, pos[1] + spreadRange do
|
||||
for y = pos[2] - spreadRange, pos[2] + spreadRange do
|
||||
table.insert(candidateSpaces, {x, y})
|
||||
end
|
||||
end
|
||||
|
||||
shuffle(candidateSpaces)
|
||||
|
||||
local toPlace = config.getParameter("spreadFactor", 2)
|
||||
while #candidateSpaces > 0 and toPlace > 0 do
|
||||
if world.placeObject("greycapsule", candidateSpaces[1], 1, {}) then
|
||||
toPlace = toPlace - 1
|
||||
end
|
||||
table.remove(candidateSpaces, 1)
|
||||
end
|
||||
end
|
33
assets/devel/objects/greycapsule/greycapsule.object
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"objectName" : "greycapsule",
|
||||
"colonyTags" : ["misc"],
|
||||
"rarity" : "Common",
|
||||
"category" : "breakable",
|
||||
"price" : 35,
|
||||
|
||||
"description" : "You are responsible for unleashing this horror.",
|
||||
"shortdescription" : "Grey Capsule",
|
||||
"race" : "generic",
|
||||
|
||||
"inventoryIcon" : "greycapsuleicon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"image" : "greycapsule.png:<color>",
|
||||
"imagePosition" : [0, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 0.5,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"smashable" : true,
|
||||
"smashSounds" : [ "/sfx/objects/capsule_break1.ogg", "/sfx/objects/capsule_break2.ogg", "/sfx/objects/capsule_break3.ogg" ],
|
||||
"smashParticles" : [ { "count" : 3, "particle" : "capsuleshard1" } ],
|
||||
"smashDropPool" : "empty",
|
||||
|
||||
"scripts" : [ "greycapsule.lua" ],
|
||||
"spreadFactor" : 2,
|
||||
"spreadRange" : 6
|
||||
}
|
BIN
assets/devel/objects/greycapsule/greycapsule.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
assets/devel/objects/greycapsule/greycapsuleicon.png
Normal file
After Width: | Height: | Size: 288 B |
30
assets/devel/objects/incinerator/incinerator.frames
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [16, 32],
|
||||
"dimensions" : [5, 9],
|
||||
"names" : [
|
||||
[ "default.0", "default.1", "default.2", "default.3", "default.off" ],
|
||||
[ "red.0", "red.1", "red.2", "red.3", "red.off" ],
|
||||
[ "blue.0", "blue.1", "blue.2", "blue.3", "blue.off" ],
|
||||
[ "green.0", "green.1", "green.2", "green.3", "green.off" ],
|
||||
[ "yellow.0", "yellow.1", "yellow.2", "yellow.3", "yellow.off" ],
|
||||
[ "orange.0", "orange.1", "orange.2", "orange.3", "orange.off" ],
|
||||
[ "pink.0", "pink.1", "pink.2", "pink.3", "pink.off" ],
|
||||
[ "black.0", "black.1", "black.2", "black.3", "black.off" ],
|
||||
[ "white.0", "white.1", "white.2", "white.3", "white.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"red.default" : "red.off",
|
||||
"blue.default" : "blue.off",
|
||||
"green.default" : "green.off",
|
||||
"yellow.default" : "yellow.off",
|
||||
"orange.default" : "orange.off",
|
||||
"pink.default" : "pink.off",
|
||||
"black.default" : "black.off",
|
||||
"white.default" : "white.off"
|
||||
}
|
||||
}
|
7
assets/devel/objects/incinerator/incinerator.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
function init()
|
||||
|
||||
end
|
||||
|
||||
function update(dt)
|
||||
world.containerTakeAll(entity.id())
|
||||
end
|
39
assets/devel/objects/incinerator/incinerator.object
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"objectName" : "incinerator",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Common",
|
||||
"objectType" : "container",
|
||||
"tooltipKind" : "container",
|
||||
"description" : "There was a label on here once, but it burnt off.'",
|
||||
"shortdescription" : "Incinerator",
|
||||
"race" : "human",
|
||||
|
||||
"statusEffects" : [ ],
|
||||
|
||||
"category" : "light",
|
||||
"price" : 50,
|
||||
"printable" : false,
|
||||
"lightColor" : [204, 189, 173],
|
||||
|
||||
"inventoryIcon" : "incineratoricon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "incinerator.png:<color>.<frame>",
|
||||
"imagePosition" : [-8, 0],
|
||||
"frames" : 4,
|
||||
"animationCycle" : 0.5,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "/objects/incinerator/incinerator.lua" ],
|
||||
"scriptDelta" : 10,
|
||||
|
||||
"openSounds" : [ "/sfx/objects/campfire_use.ogg" ],
|
||||
"slotCount" : 9,
|
||||
"uiConfig" : "/interface/chests/chest<slots>.config",
|
||||
"frameCooldown" : 5,
|
||||
"autoCloseCooldown" : 3600
|
||||
}
|
BIN
assets/devel/objects/incinerator/incinerator.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/devel/objects/incinerator/incineratoricon.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
9
assets/devel/objects/missionteleporter/default.frames
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [32, 64],
|
||||
"dimensions" : [1, 1],
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"objectName" : "missionteleporter",
|
||||
"colonyTags" : [],
|
||||
"objectType" : "teleporter",
|
||||
"rarity" : "Legendary",
|
||||
"description" : "Teleports to a variety of missions for easy testing.",
|
||||
"shortdescription" : "Mission Teleporter",
|
||||
"price" : 500,
|
||||
"printable" : false,
|
||||
|
||||
"category" : "teleporter",
|
||||
"lightColor" : [40, 80, 100],
|
||||
"lightPosition" : [0, 1],
|
||||
|
||||
"interactAction" : "OpenTeleportDialog",
|
||||
"interactData" : "/interface/warping/missionteleporter.config",
|
||||
|
||||
"inventoryIcon" : "missionteleportericon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"imageLayers" : [ { "image" : "missionteleporter.png:<color>", "fullbright" : true }, { "image" : "missionteleporterlit.png:<color>" } ],
|
||||
|
||||
"imagePosition" : [-16, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 0.5,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ],
|
||||
"collision" : "solid",
|
||||
"collisionSpaces" : [ [-2, 0], [-1, 0], [0, 0], [1, 0] ]
|
||||
}
|
||||
],
|
||||
|
||||
"health" : 5,
|
||||
|
||||
"teleporterFootPosition" : [0, 1]
|
||||
}
|
BIN
assets/devel/objects/missionteleporter/missionteleporter.png
Normal file
After Width: | Height: | Size: 655 B |
BIN
assets/devel/objects/missionteleporter/missionteleportericon.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/devel/objects/missionteleporter/missionteleporterlit.png
Normal file
After Width: | Height: | Size: 575 B |
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"animatedParts" : {
|
||||
"stateTypes" : {
|
||||
"moving" : {
|
||||
"default" : "off",
|
||||
"states" : {
|
||||
"off" : {},
|
||||
"on" : {
|
||||
"properties" : {
|
||||
"persistentSound" : "/sfx/tech/forcefield_loop.ogg"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"parts" : {
|
||||
"base" : {
|
||||
"properties" : {
|
||||
"offset" : [0, -1],
|
||||
"centered" : false,
|
||||
"image" : "<partImage>"
|
||||
}
|
||||
},
|
||||
|
||||
"platform" : {
|
||||
"properties" : {
|
||||
"centered" : true,
|
||||
"transformationGroups" : ["platform"],
|
||||
"image" : "<partImage>",
|
||||
"zLevel" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"transformationGroups" : {
|
||||
"platform" : {
|
||||
"interpolated" : true
|
||||
}
|
||||
},
|
||||
|
||||
"sounds" : {
|
||||
"changeDir" : {
|
||||
"pool" : [ "/sfx/blocks/footstep_lightmetal.ogg" ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"objectName" : "longhorizontalrightmovingplatform",
|
||||
"objectType" : "physics",
|
||||
"colonyTags" : ["wired"],
|
||||
"printable" : false,
|
||||
"rarity" : "Rare",
|
||||
"category" : "wire",
|
||||
"price" : 100,
|
||||
|
||||
"description" : "A moving platform.",
|
||||
"shortdescription" : "Moving Platform",
|
||||
"race" : "generic",
|
||||
|
||||
"apexDescription" : "A moving platform.",
|
||||
"avianDescription" : "A moving platform.",
|
||||
"floranDescription" : "A moving platform.",
|
||||
"glitchDescription" : "A moving platform.",
|
||||
"humanDescription" : "A moving platform.",
|
||||
"hylotlDescription" : "A moving platform.",
|
||||
|
||||
"inventoryIcon" : "platform.png",
|
||||
|
||||
"orientations" : [
|
||||
{
|
||||
"direction" : "right",
|
||||
"image" : "longhorizontalrightstand.png",
|
||||
"imagePosition" : [0, -8],
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "left" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "movingplatform.lua" ],
|
||||
"scriptDelta" : 1,
|
||||
|
||||
"animation" : "horizontalmovingplatform.animation",
|
||||
"animationParts" : {
|
||||
"base" : "longhorizontalrightstand.png",
|
||||
"platform" : "platform.png"
|
||||
},
|
||||
|
||||
"inputNodes" : [[0, 0]],
|
||||
|
||||
"physicsCollisions" : {
|
||||
"platform" : {
|
||||
"collision" : [
|
||||
[-2, -0.35],
|
||||
[2, -0.35],
|
||||
[2, 0.35],
|
||||
[-2, 0.35]
|
||||
],
|
||||
"collisionKind" : "platform",
|
||||
|
||||
"position" : [2, 0]
|
||||
}
|
||||
},
|
||||
|
||||
"platformStart" : [2, 0],
|
||||
"platformEnd" : [16, 0],
|
||||
"platformMoveTime" : 2
|
||||
}
|
After Width: | Height: | Size: 1.2 KiB |
72
assets/devel/objects/movingplatforms/movingplatform.lua
Normal file
|
@ -0,0 +1,72 @@
|
|||
require "/scripts/vec2.lua"
|
||||
require "/scripts/poly.lua"
|
||||
|
||||
function init()
|
||||
self.cycle = 0
|
||||
self.dir = 0
|
||||
self.platformStart = config.getParameter("platformStart")
|
||||
self.platformEnd = config.getParameter("platformEnd")
|
||||
self.platformMoveTime = config.getParameter("platformMoveTime")
|
||||
end
|
||||
|
||||
function getMode()
|
||||
if not object.isInputNodeConnected(0) then
|
||||
return "bounce"
|
||||
elseif object.getInputNodeLevel(0) then
|
||||
return "toend"
|
||||
else
|
||||
return "tostart"
|
||||
end
|
||||
end
|
||||
|
||||
function update()
|
||||
local mode = getMode()
|
||||
|
||||
local cycle = self.cycle
|
||||
local dir = self.dir
|
||||
|
||||
if mode == "tostart" then
|
||||
if cycle > 0.0 then
|
||||
dir = -1
|
||||
else
|
||||
dir = 0
|
||||
end
|
||||
elseif mode == "toend" then
|
||||
if cycle < 1.0 then
|
||||
dir = 1
|
||||
else
|
||||
dir = 0
|
||||
end
|
||||
else
|
||||
if dir == 0 then
|
||||
dir = 1
|
||||
end
|
||||
|
||||
if cycle == 1.0 then
|
||||
dir = -1
|
||||
elseif cycle == 0.0 then
|
||||
dir = 1
|
||||
end
|
||||
end
|
||||
|
||||
cycle = cycle + script.updateDt() / self.platformMoveTime * self.dir
|
||||
cycle = math.min(math.max(cycle, 0.0), 1.0)
|
||||
|
||||
if dir == 0 then
|
||||
animator.setAnimationState("moving", "off")
|
||||
else
|
||||
animator.setAnimationState("moving", "on")
|
||||
end
|
||||
|
||||
local pos = vec2.add(vec2.mul(self.platformStart, 1.0 - cycle), vec2.mul(self.platformEnd, cycle))
|
||||
physics.setCollisionPosition("platform", pos)
|
||||
animator.resetTransformationGroup("platform")
|
||||
animator.translateTransformationGroup("platform", pos)
|
||||
|
||||
if dir ~= self.dir then
|
||||
animator.playSound("changeDir")
|
||||
end
|
||||
|
||||
self.cycle = cycle
|
||||
self.dir = dir
|
||||
end
|
BIN
assets/devel/objects/movingplatforms/platform.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"objectName" : "shorthorizontalrightmovingplatform",
|
||||
"objectType" : "physics",
|
||||
"colonyTags" : ["wired"],
|
||||
"printable" : false,
|
||||
"rarity" : "Rare",
|
||||
"category" : "wire",
|
||||
"price" : 100,
|
||||
|
||||
"description" : "A moving platform.",
|
||||
"shortdescription" : "Moving Platform",
|
||||
"race" : "generic",
|
||||
|
||||
"apexDescription" : "A moving platform.",
|
||||
"avianDescription" : "A moving platform.",
|
||||
"floranDescription" : "A moving platform.",
|
||||
"glitchDescription" : "A moving platform.",
|
||||
"humanDescription" : "A moving platform.",
|
||||
"hylotlDescription" : "A moving platform.",
|
||||
|
||||
"inventoryIcon" : "platform.png",
|
||||
|
||||
"orientations" : [
|
||||
{
|
||||
"direction" : "right",
|
||||
"image" : "shorthorizontalrightstand.png",
|
||||
"imagePosition" : [0, -8],
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "left" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "movingplatform.lua" ],
|
||||
"scriptDelta" : 1,
|
||||
|
||||
"animation" : "horizontalmovingplatform.animation",
|
||||
"animationParts" : {
|
||||
"base" : "shorthorizontalrightstand.png",
|
||||
"platform" : "platform.png"
|
||||
},
|
||||
|
||||
"physicsCollisions" : {
|
||||
"platform" : {
|
||||
"collision" : [
|
||||
[-2, -0.35],
|
||||
[2, -0.35],
|
||||
[2, 0.35],
|
||||
[-2, 0.35]
|
||||
],
|
||||
"collisionKind" : "platform",
|
||||
|
||||
"position" : [2, 0]
|
||||
}
|
||||
},
|
||||
|
||||
"platformStart" : [2, 0],
|
||||
"platformEnd" : [8, 0],
|
||||
"platformMoveTime" : 1
|
||||
}
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"objectName" : "shortverticalmovingplatform",
|
||||
"objectType" : "physics",
|
||||
"colonyTags" : ["wired"],
|
||||
"printable" : false,
|
||||
"rarity" : "Rare",
|
||||
"category" : "wire",
|
||||
"price" : 100,
|
||||
|
||||
"description" : "A moving platform.",
|
||||
"shortdescription" : "Moving Platform",
|
||||
"race" : "generic",
|
||||
|
||||
"apexDescription" : "A moving platform.",
|
||||
"avianDescription" : "A moving platform.",
|
||||
"floranDescription" : "A moving platform.",
|
||||
"glitchDescription" : "A moving platform.",
|
||||
"humanDescription" : "A moving platform.",
|
||||
"hylotlDescription" : "A moving platform.",
|
||||
|
||||
"inventoryIcon" : "platform.png",
|
||||
|
||||
"orientations" : [
|
||||
{
|
||||
"direction" : "right",
|
||||
"image" : "shortverticalstand.png",
|
||||
"imagePosition" : [-8, 0],
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "movingplatform.lua" ],
|
||||
"scriptDelta" : 1,
|
||||
|
||||
"animation" : "verticalmovingplatform.animation",
|
||||
"animationParts" : {
|
||||
"base" : "shortverticalstand.png",
|
||||
"platform" : "platform.png"
|
||||
},
|
||||
|
||||
"inputNodes" : [[0, 0]],
|
||||
|
||||
"physicsCollisions" : {
|
||||
"platform" : {
|
||||
"collision" : [
|
||||
[-2, -0.35],
|
||||
[2, -0.35],
|
||||
[2, 0.35],
|
||||
[-2, 0.35]
|
||||
],
|
||||
"collisionKind" : "platform",
|
||||
|
||||
"position" : [0, 1]
|
||||
}
|
||||
},
|
||||
|
||||
"platformStart" : [0, 0.5],
|
||||
"platformEnd" : [0, 8],
|
||||
"platformMoveTime" : 1
|
||||
}
|
BIN
assets/devel/objects/movingplatforms/shortverticalstand.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"objectName" : "tallverticalmovingplatform",
|
||||
"objectType" : "physics",
|
||||
"colonyTags" : ["wired"],
|
||||
"printable" : false,
|
||||
"rarity" : "Rare",
|
||||
"category" : "wire",
|
||||
"price" : 100,
|
||||
|
||||
"description" : "A moving platform.",
|
||||
"shortdescription" : "Moving Platform",
|
||||
"race" : "generic",
|
||||
|
||||
"apexDescription" : "A moving platform.",
|
||||
"avianDescription" : "A moving platform.",
|
||||
"floranDescription" : "A moving platform.",
|
||||
"glitchDescription" : "A moving platform.",
|
||||
"humanDescription" : "A moving platform.",
|
||||
"hylotlDescription" : "A moving platform.",
|
||||
|
||||
"inventoryIcon" : "platform.png",
|
||||
|
||||
"orientations" : [
|
||||
{
|
||||
"direction" : "right",
|
||||
"image" : "tallverticalstand.png",
|
||||
"imagePosition" : [-8, 0],
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "movingplatform.lua" ],
|
||||
"scriptDelta" : 1,
|
||||
|
||||
"animation" : "verticalmovingplatform.animation",
|
||||
"animationParts" : {
|
||||
"base" : "tallverticalstand.png",
|
||||
"platform" : "platform.png"
|
||||
},
|
||||
|
||||
"inputNodes" : [[0, 0]],
|
||||
|
||||
"physicsCollisions" : {
|
||||
"platform" : {
|
||||
"collision" : [
|
||||
[-2, -0.35],
|
||||
[2, -0.35],
|
||||
[2, 0.35],
|
||||
[-2, 0.35]
|
||||
],
|
||||
"collisionKind" : "platform",
|
||||
|
||||
"position" : [0, 1]
|
||||
}
|
||||
},
|
||||
|
||||
"platformStart" : [0, 0.5],
|
||||
"platformEnd" : [0, 16],
|
||||
"platformMoveTime" : 2
|
||||
}
|
BIN
assets/devel/objects/movingplatforms/tallverticalstand.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"animatedParts" : {
|
||||
"stateTypes" : {
|
||||
"moving" : {
|
||||
"default" : "off",
|
||||
"states" : {
|
||||
"off" : {},
|
||||
"on" : {
|
||||
"properties" : {
|
||||
"persistentSound" : "/sfx/tech/forcefield_loop.ogg"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"parts" : {
|
||||
"base" : {
|
||||
"properties" : {
|
||||
"offset" : [-1, 0],
|
||||
"centered" : false,
|
||||
"image" : "<partImage>"
|
||||
}
|
||||
},
|
||||
|
||||
"platform" : {
|
||||
"properties" : {
|
||||
"centered" : true,
|
||||
"transformationGroups" : ["platform"],
|
||||
"image" : "<partImage>",
|
||||
"zLevel" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"transformationGroups" : {
|
||||
"platform" : {
|
||||
"interpolated" : true
|
||||
}
|
||||
},
|
||||
|
||||
"sounds" : {
|
||||
"changeDir" : {
|
||||
"pool" : [ "/sfx/blocks/footstep_lightmetal.ogg" ]
|
||||
}
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/multichair/icon.png
Normal file
After Width: | Height: | Size: 207 B |
43
assets/devel/objects/multichair/multichair.object
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"objectName" : "multichair",
|
||||
"colonyTags" : ["odd"],
|
||||
"printable" : false,
|
||||
"rarity" : "Common",
|
||||
"description" : "A space saving chair for you and three friends",
|
||||
"shortdescription" : "Multi-Chair",
|
||||
"race" : "generic",
|
||||
"category" : "furniture",
|
||||
"price" : 300,
|
||||
|
||||
"apexDescription" : "A ridiculous chair.",
|
||||
"avianDescription" : "A ridiculous chair.",
|
||||
"floranDescription" : "A ridiculous chair.",
|
||||
"glitchDescription" : "A ridiculous chair.",
|
||||
"humanDescription" : "A ridiculous chair.",
|
||||
"hylotlDescription" : "A ridiculous chair.",
|
||||
"novakidDescription" : "A ridiculous chair.",
|
||||
|
||||
"inventoryIcon" : "icon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "multichair.png",
|
||||
|
||||
"imagePosition" : [-8, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 1.0,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
|
||||
}
|
||||
],
|
||||
|
||||
"objectType" : "loungeable",
|
||||
"sitFlipDirection" : false,
|
||||
"sitPositions" : [
|
||||
[2, 25],
|
||||
[2, 47],
|
||||
[2, 69],
|
||||
[2, 91]
|
||||
]
|
||||
}
|
BIN
assets/devel/objects/multichair/multichair.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/devel/objects/penguin/penguinplush/icon.png
Normal file
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [16, 16],
|
||||
"dimensions" : [1, 1],
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"objectName" : "penguinplush",
|
||||
"colonyTags" : ["penguin","pretty"],
|
||||
"rarity" : "Common",
|
||||
"category" : "decorative",
|
||||
"price" : 50,
|
||||
|
||||
"description" : "A cuddly penguin plushy. Awwwww.",
|
||||
"shortdescription" : "Penguin Plushie",
|
||||
"race" : "generic",
|
||||
|
||||
"apexDescription" : "An adorable cuddly penguin.",
|
||||
"avianDescription" : "How cute, a cuddly toy penguin.",
|
||||
"floranDescription" : "Floran not even want ssstab cuddly penguin.",
|
||||
"glitchDescription" : "Melting. This delightful penguin is almost too much!",
|
||||
"humanDescription" : "I just wanna cuddle this penguin forever.",
|
||||
"hylotlDescription" : "Shriek! A wonderful penguin plushie. I need this one!",
|
||||
|
||||
"inventoryIcon" : "icon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "penguinplush.png:<color>",
|
||||
"imagePosition" : [-8, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 0.4,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
|
||||
}
|
||||
]
|
||||
}
|
BIN
assets/devel/objects/penguin/penguinplush/penguinplush.png
Normal file
After Width: | Height: | Size: 15 KiB |
15
assets/devel/objects/platformemitter/platformemitter.frames
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [16, 8],
|
||||
"dimensions" : [2, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default.1", "default.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"default.on" : "default.1"
|
||||
}
|
||||
}
|
164
assets/devel/objects/platformemitter/platformemitter.object
Normal file
|
@ -0,0 +1,164 @@
|
|||
{
|
||||
"objectName" : "platformemitter",
|
||||
"colonyTags" : [ ],
|
||||
"printable" : false,
|
||||
"rarity" : "Common",
|
||||
"description" : "A test object that emits platform projectiles.",
|
||||
"shortdescription" : "Rail Platform Emitter",
|
||||
"race" : "avian",
|
||||
|
||||
"category" : "trap",
|
||||
"price" : 200,
|
||||
|
||||
"inventoryIcon" : "platformemittericon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"image" : "platformemitter.png:<color>.<frame>",
|
||||
"imagePosition" : [-8, 0],
|
||||
"direction" : "left",
|
||||
"flipImages" : true,
|
||||
|
||||
"animationPosition" : [-8, 0],
|
||||
"animationParts" : {
|
||||
"bg" : "platformemitter.png",
|
||||
"fg" : "platformemitter.png"
|
||||
},
|
||||
|
||||
"projectileDirection" : [0, 1],
|
||||
"projectilePosition" : [0, 1.0],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "n"
|
||||
}
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
},
|
||||
{
|
||||
"image" : "platformemitter.png:<color>.<frame>",
|
||||
"imagePosition" : [0, 0],
|
||||
"direction" : "right",
|
||||
|
||||
"animationPosition" : [0, 0],
|
||||
"animationParts" : {
|
||||
"bg" : "platformemitter.png",
|
||||
"fg" : "platformemitter.png"
|
||||
},
|
||||
|
||||
"projectileDirection" : [0, 1],
|
||||
"projectilePosition" : [1, 1.0],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "n"
|
||||
}
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
},
|
||||
{
|
||||
"image" : "platformemitterleft.png:<color>.<frame>",
|
||||
"imagePosition" : [0, -8],
|
||||
"direction" : "right",
|
||||
|
||||
"animationPosition" : [0, -8],
|
||||
"animationParts" : {
|
||||
"bg" : "platformemitterleft.png",
|
||||
"fg" : "platformemitterleft.png"
|
||||
},
|
||||
|
||||
"projectileDirection" : [1, 0],
|
||||
"projectilePosition" : [1, 0.5],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "e"
|
||||
}
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "left" ]
|
||||
},
|
||||
{
|
||||
"image" : "platformemitterright.png:<color>.<frame>",
|
||||
"imagePosition" : [0, -8],
|
||||
"direction" : "right",
|
||||
|
||||
"animationPosition" : [0, -8],
|
||||
"animationParts" : {
|
||||
"bg" : "platformemitterright.png",
|
||||
"fg" : "platformemitterright.png"
|
||||
},
|
||||
|
||||
"projectileDirection" : [-1, 0],
|
||||
"projectilePosition" : [0, 0.5],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "w"
|
||||
}
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "right" ]
|
||||
},
|
||||
{
|
||||
"image" : "platformemitterceiling.png:<color>.<frame>",
|
||||
"imagePosition" : [-8, 0],
|
||||
"direction" : "left",
|
||||
"flipImages" : true,
|
||||
|
||||
"animationPosition" : [-8, 0],
|
||||
"animationParts" : {
|
||||
"bg" : "platformemitterceiling.png",
|
||||
"fg" : "platformemitterceiling.png"
|
||||
},
|
||||
|
||||
"projectileDirection" : [0, -1],
|
||||
"projectilePosition" : [0, 0.0],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "s"
|
||||
}
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "top" ]
|
||||
},
|
||||
{
|
||||
"image" : "platformemitterceiling.png:<color>.<frame>",
|
||||
"imagePosition" : [0, 0],
|
||||
"direction" : "right",
|
||||
|
||||
"animationPosition" : [0, 0],
|
||||
"animationParts" : {
|
||||
"bg" : "platformemitterceiling.png",
|
||||
"fg" : "platformemitterceiling.png"
|
||||
},
|
||||
|
||||
"projectileDirection" : [0, -1],
|
||||
"projectilePosition" : [1, 0.0],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "s"
|
||||
}
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "top" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "/objects/wired/projectiletrap/projectiletrap.lua" ],
|
||||
"scriptDelta" : 2,
|
||||
|
||||
"animation" : "/objects/wired/projectiletrap/projectiletrap.animation",
|
||||
|
||||
"inputNodes" : [ [0, 0] ],
|
||||
|
||||
"inactiveLightColor" : [0, 0, 0],
|
||||
"activeLightColor" : [0, 0, 0],
|
||||
|
||||
"fireTime" : 5,
|
||||
"fireTimeVariance" : 0.0,
|
||||
"projectile" : "railplatform"
|
||||
}
|
BIN
assets/devel/objects/platformemitter/platformemitter.png
Normal file
After Width: | Height: | Size: 184 B |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [16, 8],
|
||||
"dimensions" : [2, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default.1", "default.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"default.on" : "default.1"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/platformemitter/platformemitterceiling.png
Normal file
After Width: | Height: | Size: 192 B |
BIN
assets/devel/objects/platformemitter/platformemittericon.png
Normal file
After Width: | Height: | Size: 261 B |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [8, 16],
|
||||
"dimensions" : [2, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default.1", "default.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"default.on" : "default.1"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/platformemitter/platformemitterleft.png
Normal file
After Width: | Height: | Size: 220 B |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [8, 16],
|
||||
"dimensions" : [2, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default.1", "default.off" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off",
|
||||
"default.on" : "default.1"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/platformemitter/platformemitterright.png
Normal file
After Width: | Height: | Size: 227 B |
52
assets/devel/objects/pump/pump.animation
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"animatedParts" : {
|
||||
"stateTypes" : {
|
||||
"pumping" : {
|
||||
"priority" : 0,
|
||||
"default" : "idle",
|
||||
|
||||
"states" : {
|
||||
"idle" : {
|
||||
"frames" : 1
|
||||
},
|
||||
"error" : {
|
||||
"frames" : 1
|
||||
},
|
||||
"pump" : {
|
||||
"frames" : 10,
|
||||
"cycle" : 0.5,
|
||||
"mode" : "loop"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"parts" : {
|
||||
"pump" : {
|
||||
"properties" : {
|
||||
"offset" : [0, 0],
|
||||
"centered" : false,
|
||||
"zLevel" : 3
|
||||
},
|
||||
"partStates" : {
|
||||
"pumping" : {
|
||||
"idle" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:idle"
|
||||
}
|
||||
},
|
||||
"error" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:error"
|
||||
}
|
||||
},
|
||||
"pump" : {
|
||||
"properties" : {
|
||||
"image" : "<partImage>:pump.<frame>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
assets/devel/objects/pump/pump.frames
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [16, 16],
|
||||
"dimensions" : [12, 1],
|
||||
"names" : [
|
||||
[ "idle", "error", "pump.1", "pump.2", "pump.3", "pump.4", "pump.5", "pump.6", "pump.7", "pump.8", "pump.9", "pump.10" ]
|
||||
]
|
||||
}
|
||||
}
|
56
assets/devel/objects/pump/pump.lua
Normal file
|
@ -0,0 +1,56 @@
|
|||
require "/scripts/vec2.lua"
|
||||
|
||||
function init()
|
||||
self.inputPosition = config.getParameter("inputPosition")
|
||||
self.outputPosition = config.getParameter("outputPosition")
|
||||
|
||||
if object.direction() < 0 then
|
||||
self.inputPosition, self.outputPosition = self.outputPosition, self.inputPosition
|
||||
end
|
||||
|
||||
local pos = entity.position()
|
||||
self.inputPosition = vec2.add(vec2.add(self.inputPosition, pos), {0.5, 0.5})
|
||||
self.outputPosition = vec2.add(vec2.add(self.outputPosition, pos), {0.5, 0.5})
|
||||
|
||||
self.pumpTimer = 0
|
||||
self.pumpFrequency = config.getParameter("pumpFrequency", 0.25)
|
||||
|
||||
storage.pumping = storage.pumping or false
|
||||
end
|
||||
|
||||
function update(dt)
|
||||
-- world.debugPoint(self.inputPosition, "blue")
|
||||
-- world.debugPoint(self.outputPosition, "green")
|
||||
|
||||
if object.isInputNodeConnected(0) then
|
||||
object.setInteractive(false)
|
||||
storage.pumping = object.getInputNodeLevel(0)
|
||||
else
|
||||
object.setInteractive(true)
|
||||
end
|
||||
|
||||
local pumpAnimationState = storage.pumping and ((world.liquidAt(self.inputPosition) and not world.pointCollision(self.outputPosition)) and "pump" or "error") or "idle"
|
||||
animator.setAnimationState("pumping", pumpAnimationState)
|
||||
|
||||
self.pumpTimer = math.max(0, self.pumpTimer - dt)
|
||||
if storage.pumping and self.pumpTimer == 0 then
|
||||
pump()
|
||||
self.pumpTimer = self.pumpFrequency
|
||||
end
|
||||
end
|
||||
|
||||
function onInteraction(args)
|
||||
storage.pumping = not storage.pumping
|
||||
end
|
||||
|
||||
function uninit()
|
||||
|
||||
end
|
||||
|
||||
function pump()
|
||||
local liquid = world.liquidAt(self.inputPosition)
|
||||
if liquid and not world.pointCollision(self.outputPosition) then
|
||||
world.destroyLiquid(self.inputPosition)
|
||||
world.spawnLiquid(self.outputPosition, table.unpack(liquid))
|
||||
end
|
||||
end
|
45
assets/devel/objects/pump/pump.object
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"objectName" : "pump",
|
||||
"colonyTags" : ["wired"],
|
||||
"printable" : false,
|
||||
"rarity" : "Common",
|
||||
"description" : "Moves liquids from one side to the other.",
|
||||
"shortdescription" : "Pump",
|
||||
"race" : "generic",
|
||||
|
||||
"category" : "wire",
|
||||
"price" : 20,
|
||||
|
||||
"inventoryIcon" : "pump.png:idle",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "pump.png:idle",
|
||||
"imagePosition" : [-8, -8],
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "background" ],
|
||||
|
||||
"collision" : "solid"
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [
|
||||
"pump.lua"
|
||||
],
|
||||
"scriptDelta" : 5,
|
||||
|
||||
"animation" : "pump.animation",
|
||||
"animationCustom" : { },
|
||||
|
||||
"animationParts" : {
|
||||
"pump" : "pump.png"
|
||||
},
|
||||
"animationPosition" : [-8, -8],
|
||||
|
||||
"inputNodes" : [ [-1, 0] ],
|
||||
|
||||
"inputPosition" : [-2, -1],
|
||||
"outputPosition" : [1, -1],
|
||||
|
||||
"pumpFrequency" : 0.25
|
||||
}
|
BIN
assets/devel/objects/pump/pump.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
11
assets/devel/objects/questgentest/questgentest.frames
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [16, 16],
|
||||
"dimensions" : [3, 1],
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
|
||||
}
|
||||
}
|
91
assets/devel/objects/questgentest/questgentest.lua
Normal file
|
@ -0,0 +1,91 @@
|
|||
require("/scripts/quest/serialize.lua")
|
||||
require("/scripts/questgen/generator.lua")
|
||||
require("/scripts/questgen/plannerTests.lua")
|
||||
|
||||
function init()
|
||||
object.setInteractive(true)
|
||||
setupTests()
|
||||
end
|
||||
|
||||
function chooseQuestGiver()
|
||||
if storage.questGiver then
|
||||
return world.loadUniqueEntity(storage.questGiver)
|
||||
end
|
||||
|
||||
local entities = util.filter(world.npcQuery(object.position(), 50), function (npc)
|
||||
return world.callScriptedEntity(npc, "config.getParameter", "questGenerator.enableParticipation")
|
||||
end)
|
||||
if #entities == 0 then return nil end
|
||||
return entities[math.random(#entities)]
|
||||
end
|
||||
|
||||
function withGenerator(func)
|
||||
local questGiver = chooseQuestGiver()
|
||||
if not questGiver then return end
|
||||
|
||||
local generator = QuestGenerator.new()
|
||||
generator.debug = true
|
||||
generator.questGiver = questGiver
|
||||
generator.questPools = world.callScriptedEntity(questGiver, "config.getParameter", "questGenerator.pools") or {}
|
||||
|
||||
self.co = coroutine.create(function ()
|
||||
local arc = func(generator)
|
||||
if arc then
|
||||
world.spawnStagehand(generator:position(), "questmanager", {
|
||||
uniqueId = arc.questArc.stagehandUniqueId,
|
||||
quest = {
|
||||
arc = storeQuestArcDescriptor(arc.questArc),
|
||||
participants = arc.participants
|
||||
},
|
||||
plugins = arc.managerPlugins
|
||||
})
|
||||
end
|
||||
return arc
|
||||
end)
|
||||
end
|
||||
|
||||
function generate(questName)
|
||||
questName = questName or storage.questName
|
||||
withGenerator(function (generator)
|
||||
local quest = generator:questPool().quests[questName]
|
||||
quest.name = questName
|
||||
return generator:generate(quest)
|
||||
end)
|
||||
end
|
||||
|
||||
function timing()
|
||||
local questGiver = chooseQuestGiver()
|
||||
if not questGiver then return end
|
||||
|
||||
local generator = QuestGenerator.new()
|
||||
generator.debug = true
|
||||
generator.measureTime = true
|
||||
|
||||
local stepCount = 0
|
||||
while generator.coroutine == nil or coroutine.status(generator.coroutine) ~= "dead" do
|
||||
generator:generateStep()
|
||||
stepCount = stepCount + 1
|
||||
end
|
||||
sb.logInfo("Total steps: %s", stepCount)
|
||||
sb.logInfo("Estimated generation time over multiple frames: %ss", stepCount/6)
|
||||
end
|
||||
|
||||
function onInteraction()
|
||||
if storage.questName then
|
||||
generate()
|
||||
return
|
||||
end
|
||||
|
||||
withGenerator(function (generator)
|
||||
return generator:generate()
|
||||
end)
|
||||
end
|
||||
|
||||
function update(dt)
|
||||
if self.co and coroutine.status(self.co) ~= "dead" then
|
||||
local status, result = coroutine.resume(self.co)
|
||||
if not status then
|
||||
sb.logInfo("Generator broke: %s", result)
|
||||
end
|
||||
end
|
||||
end
|
30
assets/devel/objects/questgentest/questgentest.object
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"objectName" : "questgentest",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Common",
|
||||
"description" : "This book is full of quests...",
|
||||
"shortdescription" : "Quest Book",
|
||||
"race" : "glitch",
|
||||
"category" : "decorative",
|
||||
"price" : 55,
|
||||
|
||||
"inventoryIcon" : "questgentesticon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "questgentest.png:<color>",
|
||||
|
||||
"imagePosition" : [-8, 0],
|
||||
"frames" : 1,
|
||||
"animationCycle" : 1.0,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [
|
||||
"/objects/questgentest/questgentest.lua"
|
||||
],
|
||||
"scriptDelta" : 10
|
||||
}
|
BIN
assets/devel/objects/questgentest/questgentest.png
Normal file
After Width: | Height: | Size: 683 B |
BIN
assets/devel/objects/questgentest/questgentesticon.png
Normal file
After Width: | Height: | Size: 423 B |
131
assets/devel/objects/rails/railbladetrap/railbladetrap.object
Normal file
|
@ -0,0 +1,131 @@
|
|||
{
|
||||
"objectName" : "railbladetrap",
|
||||
"colonyTags" : ["evil"],
|
||||
"rarity" : "Common",
|
||||
"description" : "Fires spinning blades that follow rails for absurdly dangerous situations!",
|
||||
"shortdescription" : "Railblade Trap",
|
||||
"race" : "generic",
|
||||
"category" : "rail",
|
||||
"price" : 200,
|
||||
|
||||
"inventoryIcon" : "railbladetrapicon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "railbladetrapground.png",
|
||||
|
||||
"imagePosition" : [-12, 0],
|
||||
|
||||
"animationPosition" : [-12, 0],
|
||||
"animationParts" : {
|
||||
"bg" : "railbladetrapground.png",
|
||||
"fg" : "railbladetrapground.png"
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ],
|
||||
"direction" : "right",
|
||||
|
||||
"projectileDirection" : [0, 1],
|
||||
"projectilePosition" : [0, 0.5],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "n"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"dualImage" : "railbladetrapceiling.png",
|
||||
|
||||
"imagePosition" : [-12, 0],
|
||||
|
||||
"animationPosition" : [-12, 0],
|
||||
"animationParts" : {
|
||||
"bg" : "railbladetrapceiling.png",
|
||||
"fg" : "railbladetrapceiling.png"
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "top" ],
|
||||
"direction" : "right",
|
||||
|
||||
"projectileDirection" : [0, -1],
|
||||
"projectilePosition" : [0, 0.5],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "s"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"image" : "railbladetrapleft.png",
|
||||
|
||||
"imagePosition" : [0, -12],
|
||||
|
||||
"animationPosition" : [0, -12],
|
||||
"animationParts" : {
|
||||
"bg" : "railbladetrapleft.png",
|
||||
"fg" : "railbladetrapleft.png"
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "left" ],
|
||||
"direction" : "right",
|
||||
|
||||
"projectileDirection" : [1, 0],
|
||||
"projectilePosition" : [0.5, 0],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "e"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"image" : "railbladetrapright.png",
|
||||
|
||||
"imagePosition" : [0, -12],
|
||||
|
||||
"animationPosition" : [0, -12],
|
||||
"animationParts" : {
|
||||
"bg" : "railbladetrapright.png",
|
||||
"fg" : "railbladetrapright.png"
|
||||
},
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "right" ],
|
||||
"direction" : "right",
|
||||
|
||||
"projectileDirection" : [-1, 0],
|
||||
"projectilePosition" : [0.5, 0],
|
||||
"projectileConfig" : {
|
||||
"railConfig" : {
|
||||
"direction" : "w"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"animationParts" : {
|
||||
"bg" : "railbladetrapground.png",
|
||||
"fg" : "railbladetrapground.png"
|
||||
},
|
||||
|
||||
"animation" : "/objects/wired/projectiletrap/projectiletrap.animation",
|
||||
|
||||
"inputNodes" : [ [0, 0] ],
|
||||
|
||||
"smashOnBreak" : true,
|
||||
"smashParticles" : [ { "count" : 5, "particle" : "woodshard" } ],
|
||||
|
||||
"scripts" : [ "/objects/wired/projectiletrap/projectiletrap.lua" ],
|
||||
"scriptDelta" : 5,
|
||||
|
||||
"inactiveLightColor" : [0, 0, 0],
|
||||
"activeLightColor" : [0, 0, 0],
|
||||
|
||||
"fireTime" : 5.0,
|
||||
"fireTimeVariance" : 0.0,
|
||||
"projectile" : "railblade"
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [24, 8],
|
||||
"dimensions" : [1, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default",
|
||||
"default.on" : "default",
|
||||
"default.off" : "default",
|
||||
"default.1" : "default"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 214 B |
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [24, 8],
|
||||
"dimensions" : [1, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default",
|
||||
"default.on" : "default",
|
||||
"default.off" : "default",
|
||||
"default.1" : "default"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/rails/railbladetrap/railbladetrapground.png
Normal file
After Width: | Height: | Size: 213 B |
BIN
assets/devel/objects/rails/railbladetrap/railbladetrapicon.png
Normal file
After Width: | Height: | Size: 209 B |
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [8, 24],
|
||||
"dimensions" : [1, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default",
|
||||
"default.on" : "default",
|
||||
"default.off" : "default",
|
||||
"default.1" : "default"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/rails/railbladetrap/railbladetrapleft.png
Normal file
After Width: | Height: | Size: 220 B |
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"frameGrid" : {
|
||||
"size" : [8, 24],
|
||||
"dimensions" : [1, 1],
|
||||
|
||||
"names" : [
|
||||
[ "default" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default",
|
||||
"default.on" : "default",
|
||||
"default.off" : "default",
|
||||
"default.1" : "default"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/rails/railbladetrap/railbladetrapright.png
Normal file
After Width: | Height: | Size: 216 B |
22
assets/devel/objects/rails/raildoor/raildoor.frames
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [40, 40],
|
||||
"dimensions" : [6, 1],
|
||||
"names" : [
|
||||
[ "closed", "halfLeft", "left", null, "halfRight", "right" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default" : "closed",
|
||||
"closeLeft.1" : "halfLeft",
|
||||
"closeLeft.2" : "closed",
|
||||
"closeRight.1" : "halfRight",
|
||||
"closeRight.2" : "closed",
|
||||
"openLeft.1" : "halfLeft",
|
||||
"openLeft.2" : "left",
|
||||
"openRight.1" : "halfRight",
|
||||
"openRight.2" : "right"
|
||||
}
|
||||
}
|
53
assets/devel/objects/rails/raildoor/raildoor.object
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"objectName" : "raildoor",
|
||||
"colonyTags" : ["rails","door"],
|
||||
"rarity" : "Common",
|
||||
|
||||
"category" : "door",
|
||||
"price" : 300,
|
||||
"description" : "This door includes rails to allow riders through when open.",
|
||||
"shortdescription" : "Rail Door",
|
||||
"race" : "generic",
|
||||
|
||||
"inventoryIcon" : "raildooricon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"image" : "raildoor.png:default",
|
||||
"flipImages" : true,
|
||||
"imagePosition" : [-20, 0],
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom", "top" ],
|
||||
"direction" : "left"
|
||||
},
|
||||
{
|
||||
"image" : "raildoor.png:default",
|
||||
"imagePosition" : [-20, 0],
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom", "top" ],
|
||||
"direction" : "right"
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : [ "/objects/wired/door/door.lua" ],
|
||||
"scriptDelta" : 5,
|
||||
|
||||
"openMaterialSpaces" : [
|
||||
[[-1, 0], "metamaterial:rail"], [[0, 0], "metamaterial:rail"],
|
||||
[[-1, 4], "metamaterial:rail"], [[0, 4], "metamaterial:rail"]
|
||||
],
|
||||
|
||||
"animation" : "/objects/wired/door/door.animation",
|
||||
"animationCustom" : {
|
||||
"sounds" : {
|
||||
"open" : [ "/sfx/objects/apexcooldoor_open.ogg" ],
|
||||
"close" : [ "/sfx/objects/apexcooldoor_close.ogg" ]
|
||||
}
|
||||
},
|
||||
"animationParts" : {
|
||||
"door" : "raildoor.png"
|
||||
},
|
||||
"animationPosition" : [-20, 0],
|
||||
|
||||
"inputNodes" : [ [-1, 4] ],
|
||||
"outputNodes" : [ [0, 0] ]
|
||||
}
|
BIN
assets/devel/objects/rails/raildoor/raildoor.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/devel/objects/rails/raildoor/raildooricon.png
Normal file
After Width: | Height: | Size: 227 B |
14
assets/devel/objects/sbvntestconsole/sbvntestconsole.frames
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
|
||||
"frameGrid" : {
|
||||
"size" : [24, 32],
|
||||
"dimensions" : [3, 1],
|
||||
"names" : [
|
||||
[ "default.off", "default.0", "default.1" ]
|
||||
]
|
||||
},
|
||||
|
||||
"aliases" : {
|
||||
"default.default" : "default.off"
|
||||
}
|
||||
}
|
33
assets/devel/objects/sbvntestconsole/sbvntestconsole.object
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"objectName" : "sbvntestconsole",
|
||||
"colonyTags" : [],
|
||||
"rarity" : "Legendary",
|
||||
"category" : "decorative",
|
||||
"price" : 0,
|
||||
|
||||
"description" : "An arcade machine with an interactive narrative game.",
|
||||
"shortdescription" : "SBVN Test Console",
|
||||
"race" : "generic",
|
||||
|
||||
"inventoryIcon" : "sbvntestconsoleicon.png",
|
||||
"orientations" : [
|
||||
{
|
||||
"dualImage" : "sbvntestconsole.png:<color>.<frame>",
|
||||
"imagePosition" : [-12, 0],
|
||||
"frames" : 2,
|
||||
"animationCycle" : 0.6,
|
||||
|
||||
"spaceScan" : 0.1,
|
||||
"anchors" : [ "bottom" ]
|
||||
}
|
||||
],
|
||||
|
||||
"scripts" : ["/interface/scripted/sbvn/sbvnobject.lua"],
|
||||
"scriptDelta" : 0,
|
||||
|
||||
"interactAction" : "ScriptPane",
|
||||
"interactData" : {
|
||||
"baseConfig" : "/interface/scripted/sbvn/sbvngui.config",
|
||||
"gameFile" : "/interface/scripted/sbvn/games/testgame/testgame.sbvn"
|
||||
}
|
||||
}
|
BIN
assets/devel/objects/sbvntestconsole/sbvntestconsole.png
Normal file
After Width: | Height: | Size: 1.6 KiB |