FILES ----- player.config [NEW] behaviors\monsters\boss\spiderboss.behavior behaviors\npc\sit.behavior codex\documents\floranambition.codex codex\documents\floranambition.codexitem codex\documents\lasladiary03.codex codex\documents\towerbeverage.codexitem codex\documents\towerresults.codexitem dungeons\avian\avianairship\avianairship.dungeon dungeons\avian\aviantomb\aviantomb.dungeon dungeons\avian\aviantower\aviantower.dungeon dungeons\avian\avianvillage\avianvillage.dungeon dungeons\microdungeons\biome\ocean\oceanencounter.dungeon [NEW] dungeons\microdungeons\biome\ocean\oceankind10.json dungeons\microdungeons\randomencounter\avianunderground\avianundergroundencounter.dungeon dungeons\missions\avianmissions\avianmission1.dungeon dungeons\missions\avianmissions\avianmission1.json dungeons\missions\floranmissions\floranmission1-liquids.png dungeons\missions\floranmissions\floranmission1.dungeon dungeons\missions\hylotlmissions\hylotlmission1.json interface\cursors.frames interface\windowconfig\spinningwheel.config monsters\bmonster.lua [NEW] monsters\boss\spiderboss\actions.lua [NEW] monsters\boss\spiderboss\spiderboss.animation monsters\boss\spiderboss\spiderboss.monstertype [NEW] monsters\boss\spiderboss\spiderboss_body.frames [NEW] monsters\boss\spiderboss\spiderboss_body.monsterpart monsters\boss\spiderboss\spiderboss_body.png [NEW] monsters\boss\spiderboss\spiderboss_legs.frames [NEW] monsters\boss\spiderboss\spiderboss_legs.monsterpart [NEW] monsters\boss\spiderboss\spiderboss_shell.frames [NEW] monsters\boss\spiderboss\spiderboss_shell.monsterpart [NEW] monsters\boss\spiderboss\spiderboss_shell.png monsters\pets\groundpet.lua monsters\pets\bunny\petbunny.monstertype monsters\pets\cat\petcat.monstertype monsters\pets\crasberry\crasberry.monstertype monsters\pets\orbis\petorbis.monstertype monsters\pets\piglett\piglett.monstertype monsters\pets\snake\petsnake.monstertype monsters\pets\snugget\snugget.monstertype monsters\pets\weasel\petweasel.monstertype npcs\bmain.lua npcs\prisonberserker.npctype npcs\actions\movement.lua objects\ancient\lightstreaks\lightstreaks.object [NEW] objects\arttrophies\tenstudiesoffemalehylotlgy\icon.png [NEW] objects\arttrophies\tenstudiesoffemalehylotlgy\tenstudiesinfemalehylotlgy.frames [NEW] objects\arttrophies\tenstudiesoffemalehylotlgy\tenstudiesinfemalehylotlgy.object [NEW] objects\arttrophies\tenstudiesoffemalehylotlgy\tenstudiesinfemalehylotlgy.png [NEW] objects\avian\crystaltrap\crystaltrap.frames [NEW] objects\avian\crystaltrap\crystaltrap.object [NEW] objects\avian\crystaltrap\crystaltrap.png [NEW] objects\avian\crystaltrap\crystaltrapceiling.frames [NEW] objects\avian\crystaltrap\crystaltrapceiling.png [NEW] objects\avian\crystaltrap\crystaltrapground.frames [NEW] objects\avian\crystaltrap\crystaltrapground.png [NEW] objects\avian\crystaltrap\crystaltrapicon.png [NEW] objects\avian\flametrap\flametrap.frames [NEW] objects\avian\flametrap\flametrap.object [NEW] objects\avian\flametrap\flametrap.png [NEW] objects\avian\flametrap\flametrapceiling.frames [NEW] objects\avian\flametrap\flametrapceiling.png [NEW] objects\avian\flametrap\flametrapicon.png [NEW] objects\avian\flametrap\flametrapleft.frames [NEW] objects\avian\flametrap\flametrapleft.png [NEW] objects\avian\flametrap\flametrapright.frames [NEW] objects\avian\flametrap\flametrapright.png [NEW] objects\avian\tombtrap\tombtrap.frames [NEW] objects\avian\tombtrap\tombtrap.object [NEW] objects\avian\tombtrap\tombtrap.png [NEW] objects\avian\tombtrap\tombtrapceiling.frames [NEW] objects\avian\tombtrap\tombtrapceiling.png [NEW] objects\avian\tombtrap\tombtrapceilinglit.frames [NEW] objects\avian\tombtrap\tombtrapceilinglit.png [NEW] objects\avian\tombtrap\tombtrapground.frames [NEW] objects\avian\tombtrap\tombtrapground.png [NEW] objects\avian\tombtrap\tombtrapgroundlit.frames [NEW] objects\avian\tombtrap\tombtrapgroundlit.png [NEW] objects\avian\tombtrap\tombtrapicon.png [NEW] objects\avian\tombtrap\tombtraplit.frames [NEW] objects\avian\tombtrap\tombtraplit.png objects\farmables\flowerblue\flowerblue.object objects\farmables\flowerred\flowerred.object objects\farmables\flowerspring\flowerspring.object objects\farmables\floweryellow\floweryellow.object objects\farmables\mushroom\mushroomseed.object objects\farmables\thornplant\thornplant.object objects\generic\burningcoals\burningcoals.object objects\generic\butterflybush\butterflybush.object objects\generic\cultistaltar\cultistaltar.object objects\generic\fireflybush\fireflybush.object objects\generic\statuspod\statuspod.object objects\human\chalktally\chalktally.object objects\human\prisongraffiti1\prisongraffiti1.object objects\human\prisongraffiti2\prisongraffiti2.object objects\human\prisongraffiti3\prisongraffiti3.object objects\human\prisongraffiti4\prisongraffiti4.object objects\human\prisongraffiti5\prisongraffiti5.object objects\human\prisongraffiti6\prisongraffiti6.object objects\human\prisongraffiti7\prisongraffiti7.object objects\minibiome\bioluminescence\glowbush\glowbush1.object objects\minibiome\bioluminescence\glowbush\glowbush2.object objects\minibiome\bioluminescence\glowbush\glowbush3.object objects\minibiome\bioluminescence\glowbush\glowbush4.object objects\minibiome\bioluminescence\glowbush\glowbush5.object objects\minibiome\bioluminescence\glowflower\glowflower1.object objects\minibiome\bioluminescence\glowflower\glowflower2.object objects\minibiome\bioluminescence\glowflower\glowflower3.object objects\minibiome\bioluminescence\glowflower\glowflower4.object objects\minibiome\bioluminescence\glowflower\glowflower5.object objects\wired\drain\drain.lua objects\wired\drain\drain.object objects\wired\drain\drain.png objects\wired\drain\drainicon.png objects\wired\logic\countdowntimer.lua objects\wired\logic\timer.lua [NEW] objects\wired\projectiletrap\projectiletrap.animation [NEW] objects\wired\projectiletrap\projectiletrap.lua projectiles\npcs\blueflame\blueflame.projectile projectiles\npcs\flame\flame.projectile [NEW] projectiles\traps\crystaltrapbeam\crystaltrapbeam.frames [NEW] projectiles\traps\crystaltrapbeam\crystaltrapbeam.png [NEW] projectiles\traps\crystaltrapbeam\crystaltrapbeam.projectile [NEW] projectiles\traps\crystaltrapbeam\icon.png [NEW] projectiles\traps\trapflame\icon.png [NEW] projectiles\traps\trapflame\trapflame.frames [NEW] projectiles\traps\trapflame\trapflame.png [NEW] projectiles\traps\trapflame\trapflame.projectile [NEW] recipes\spinningwheel\novakidfancychest.recipe [NEW] recipes\spinningwheel\novakidfancylegs.recipe [NEW] recipes\spinningwheel\novakidjacketchest.recipe [NEW] recipes\spinningwheel\novakidjacketlegs.recipe [NEW] recipes\spinningwheel\novakidsuspenderschest.recipe [NEW] recipes\spinningwheel\novakidsuspenderslegs.recipe [NEW] recipes\spinningwheel\novakidwaistcoatchest.recipe [NEW] recipes\spinningwheel\novakidwaistcoatlegs.recipe scripts\behavior.lua scripts\actions\entities.lua [NEW] scripts\actions\flyingmovement.lua scripts\actions\position.lua [NEW] scripts\actions\status.lua [NEW] sfx\objects\crystaltrap_loop.wav [NEW] sfx\objects\crystaltrap_off.wav [NEW] sfx\objects\crystaltrap_on1.wav [NEW] sfx\objects\crystaltrap_on2.wav [NEW] sfx\objects\flametrap_loop.wav [NEW] sfx\objects\flametrap_off.wav [NEW] sfx\objects\flametrap_on.wav sfx\objects\sarcoegg1.wav sfx\objects\sarcoegg2.wav sfx\objects\sarcoegg3.wav species\novakid.species species\penguin.species treasure\common.treasurepools DIFFS ----- player.config 38d37 < { "item" : "woodenstonefurnacetable" }, 48d46 < { "item" : "ironbeacon" }, 238d235 < { "item" : "diamond" }, behaviors\npc\sit.behavior 2c2 < "name": "villager", --- > "name": "sit", codex\documents\floranambition.codex 10,11d9 < < codex\documents\floranambition.codexitem 2c2 < "codexId" : "florannotes", --- > "codexId" : "floranambition", 5c5 < "itemName" : "florannotesCodex", --- > "itemName" : "floranambitionCodex", codex\documents\lasladiary03.codex 2c2 < "id" : "lasladiary023", --- > "id" : "lasladiary03", codex\documents\towerbeverage.codexitem 6c6 < "itemName" : "towerbeverage", --- > "itemName" : "towerbeverageCodex", codex\documents\towerresults.codexitem 6c6 < "itemName" : "towerresults", --- > "itemName" : "towerresultsCodex", dungeons\avian\avianairship\avianairship.dungeon 860c860 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left", "parameters" : { "defaultLightState" : false } } ] ] 872c872 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right", "parameters" : { "defaultLightState" : false } } ] ] dungeons\avian\aviantomb\aviantomb.dungeon 860c860 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left", "parameters" : { "defaultLightState" : false } } ] ] 872c872 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right", "parameters" : { "defaultLightState" : false } } ] ] dungeons\avian\aviantower\aviantower.dungeon 860c860 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left", "parameters" : { "defaultLightState" : false } } ] ] 872c872 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right", "parameters" : { "defaultLightState" : false } } ] ] dungeons\avian\avianvillage\avianvillage.dungeon 860c860 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left", "parameters" : { "defaultLightState" : false } } ] ] 872c872 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right", "parameters" : { "defaultLightState" : false } } ] ] dungeons\microdungeons\biome\ocean\oceanencounter.dungeon 7c7 < "anchor" : [ "oceankind1", "oceankind2", "oceankind3", "oceankind4", "oceankind5", "oceankind6", "oceankind7", "oceankind8", "oceankind9" ], --- > "anchor" : [ "oceankind1", "oceankind2", "oceankind3", "oceankind4", "oceankind5", "oceankind6", "oceankind7", "oceankind8", "oceankind9", "oceankind10" ], 76a77,83 > }, > { > "name" : "oceankind10", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "oceankind10.json" ] dungeons\microdungeons\randomencounter\avianunderground\avianundergroundencounter.dungeon 859c859 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "left", "parameters" : { "defaultLightState" : false } } ] ] 871c871 < "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right" }, { "parameters" : { "defaultLightState" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "birdgroundlantern", { "direction" : "right", "parameters" : { "defaultLightState" : false } } ] ] dungeons\missions\avianmissions\avianmission1.dungeon 11c11 < "protected" : true --- > "protected" : false dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] dungeons\missions\floranmissions\floranmission1.dungeon 90,91c90,91 < "comment" : "water pool foreground", < "brush" : [ [ "clear" ], [ "liquid", "water" ] ] --- > "comment" : "endless water pool foreground", > "brush" : [ [ "clear" ], [ "liquid", "water", true ] ] 97a98,103 > }, > > { > "value" : [100, 255, 0, 255], > "comment" : "endless poison pool foreground", > "brush" : [ [ "clear" ], [ "liquid", "poison", true ] ] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] interface\cursors.frames 2,7c2,15 < "frameList" : { < "reticle" : [0, 0, 15, 15], < "injector" : [16, 0, 31, 15], < "pointer" : [32, 0, 47, 15], < "tool" : [48, 0, 63, 15], < "inspect" : [0, 16, 16, 31] --- > "frameGrid" : { > "size" : [15, 15], > "dimensions" : [4, 4], > > "names" : [ > [ "resize", "injector", "pointer", "empty" ], > [ "inspect", "music", "chair", "chest" ], > [ "power", "ship", "door", "chat" ], > [ "key", "light", "fuel", "sleep" ] > ] > }, > > "aliases" : { > "tool" : "empty" // unused, but defined in cursor type enum interface\windowconfig\spinningwheel.config 21c21 < "title" : " SPINNING WHEEL", --- > "title" : " YARN SPINNER", monsters\bmonster.lua 10c10,12 < local groundPosition = findGroundPosition(position, -20, 3) --- > if mcontroller.baseParameters().gravityEnabled then > local groundPosition = findGroundPosition(position, -20, 3) > end 13c15 < self.positions["spawn"] = storage.spawnPosition --- > BData:setPosition("spawn", storage.spawnPosition) 17,18d18 < entity.setInteractive(true) < 36c36 < self.entities["damageSource"] = args.sourceId --- > BData:setEntity("damageSource", args.sourceId) 73a74,83 > end > > function setAnimationState(args) > args = parseArgs(args, { > type = "movement", > state = "idle" > }) > > entity.setAnimationState(args.type, args.state) > return true monsters\boss\spiderboss\spiderboss.monstertype 5c5 < "parts" : [ "organs", "shell", "bodyglow", "eye", "beam1", "beam2", "beam3", "beam4"], --- > "parts" : [ "body", "legs", "shell" ], 20a21 > "initialScriptDelta" : 1, 22c23 < "behavior" : "asd", --- > "behavior" : "/behaviors/monsters/boss/spiderboss.behavior", 35c36 < "collisionPoly" : [ [12.5, 0.5], [0, -12.5], [-12.5, 0.5], [0, 12.5] ], --- > "collisionPoly" : [ [6, 4.5], [6, -4.5], [3, -9], [-3, -9], [-6, -4.5], [-6, 4.5], [-3, 9], [3, 9] ], 39c40,42 < "airForce" : 10, --- > "flySpeed" : 5, > "airFriction" : 0.5, > "airForce" : 400.0, 45,47d47 < "jumpTargetDistance" : 4, < "jumpTime" : [0.4, 0.7], < 50,52d49 < "blockedSensors" : [ [1.5, -4.5], [1.5, -3.5], [1.5, -2.5], [1.5, -1.5], [1.5, -0.5], [1.5, 0.5] ], < "fallSensors" : [ [2, -3.5], [2, -5.5], [2, -6.5], [4, -4.5], [4, -5.5], [4, -6.5] ], < 77c74 < "baseValue" : 2300 --- > "baseValue" : 1 80c77 < "baseValue" : 10000 --- > "baseValue" : 5 99,119d95 < } < }, < < "projectiles" : { < "deathexplosion" : { < "type" : "regularexplosion2universal", < "config" : { < "speed" : 0.1, < "power" : 2, < < "actionOnReap" : [ < { < "action" : "config", < "file" : "/projectiles/explosions/regularexplosion2/regularexplosion2universal.config" < } < ] < }, < < "fireTime" : 8.0, < "fireInterval" : 0.2, < "cooldown" : 0.1 monsters\pets\groundpet.lua 41c41 < self.behaviorName = entity.configParameter("behavior") --- > self.behaviorName = entity.configParameter("petBehavior") monsters\pets\bunny\petbunny.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\cat\petcat.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\crasberry\crasberry.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\orbis\petorbis.monstertype 35c35 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\piglett\piglett.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\snake\petsnake.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\snugget\snugget.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", monsters\pets\weasel\petweasel.monstertype 36c36 < "behavior" : "petBehavior", --- > "petBehavior" : "petBehavior", npcs\bmain.lua 13c13 < self.positions["spawn"] = storage.spawnPosition --- > BData:setPosition("spawn", storage.spawnPosition) 109c109 < local targetId = getEntity(args.target) --- > local targetId = BData:getEntity(args.target) 124c124 < local targetId = getEntity(args.target) --- > local targetId = BData:getEntity(args.target) 157c157 < local entityId = getEntity(args.entity) --- > local entityId = BData:getEntity(args.entity) npcs\prisonberserker.npctype 96c96,99 < "runSpeed" : 15 --- > "runSpeed" : 16, > "airJumpProfile" : { > "jumpSpeed" : 50.0 > } npcs\actions\movement.lua 83c83 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 116c116 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 127c127 < local entityId = getEntity(args.entity) --- > local entityId = BData:getEntity(args.entity) objects\ancient\lightstreaks\lightstreaks.object 9a10 > "hasObjectItem" : false, objects\farmables\flowerblue\flowerblue.object 9d8 < "hasObjectItem" : false, objects\farmables\flowerred\flowerred.object 9d8 < "hasObjectItem" : false, objects\farmables\flowerspring\flowerspring.object 5,6c5,6 < "description" : "A flower beautiful spring flower.", < "shortdescription" : "Blue Flower", --- > "description" : "A beautiful spring flower.", > "shortdescription" : "Spring Flower", 9d8 < "hasObjectItem" : false, 11,12c10,11 < "apexDescription" : "A blue spring flower.", < "avianDescription" : "A pretty blue spring flower.", --- > "apexDescription" : "A spring flower.", > "avianDescription" : "A pretty spring flower.", 14,16c13,15 < "glitchDescription" : "Statement. A blue spring flower.", < "humanDescription" : "A blue flower of spring.", < "hylotlDescription" : "A graceful blue flower.", --- > "glitchDescription" : "Statement. A spring flower.", > "humanDescription" : "A flower of spring.", > "hylotlDescription" : "A graceful spring flower.", objects\farmables\floweryellow\floweryellow.object 9d8 < "hasObjectItem" : false, objects\farmables\mushroom\mushroomseed.object 9d8 < "hasObjectItem" : false, objects\farmables\thornplant\thornplant.object 9d8 < "hasObjectItem" : false, objects\generic\burningcoals\burningcoals.object 86c86 < "damage" : 50, --- > "damage" : 20, objects\generic\butterflybush\butterflybush.object 6,7c6 < < "hasObjectItem" : false, --- > "printable" : false, objects\generic\cultistaltar\cultistaltar.object 4,5d3 < < "hasObjectItem" : false, objects\generic\fireflybush\fireflybush.object 6,7c6 < < "hasObjectItem" : false, --- > "printable" : false, objects\generic\statuspod\statuspod.object 4,5d3 < < "hasObjectItem" : false, objects\human\chalktally\chalktally.object 6d5 < "hasObjectItem" : false, 28d26 < 30c28,30 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti1\prisongraffiti1.object 6d5 < "hasObjectItem" : false, 30d28 < 32c30,32 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti2\prisongraffiti2.object 5d4 < "hasObjectItem" : false, 29d27 < 31c29,31 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti3\prisongraffiti3.object 6d5 < "hasObjectItem" : false, 30d28 < 32c30,32 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti4\prisongraffiti4.object 6d5 < "hasObjectItem" : false, 30d28 < 32c30,32 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti5\prisongraffiti5.object 6d5 < "hasObjectItem" : false, 30d28 < 32c30,32 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti6\prisongraffiti6.object 6d5 < "hasObjectItem" : false, 30d28 < 32c30,32 < ] --- > ], > > "breakDropOptions" : [ ] objects\human\prisongraffiti7\prisongraffiti7.object 6d5 < "hasObjectItem" : false, 30d28 < 32c30,32 < ] --- > ], > > "breakDropOptions" : [ ] objects\minibiome\bioluminescence\glowbush\glowbush1.object 17,20d16 < "hasObjectItem" : false, < "breakDropOptions" : [ < [ [ "glowfibreorange", 3, { } ] ] < ], 43a40,43 > ], > > "breakDropOptions" : [ > [ [ "glowfibreorange", 3, { } ] ] objects\minibiome\bioluminescence\glowbush\glowbush2.object 17,20d16 < "hasObjectItem" : false, < "breakDropOptions" : [ < [ [ "glowfibreorange", 3, { } ] ] < ], 43a40,43 > ], > > "breakDropOptions" : [ > [ [ "glowfibreorange", 3, { } ] ] objects\minibiome\bioluminescence\glowbush\glowbush3.object 17,20d16 < "hasObjectItem" : false, < "breakDropOptions" : [ < [ [ "glowfibreorange", 3, { } ] ] < ], 43a40,43 > ], > > "breakDropOptions" : [ > [ [ "glowfibreorange", 3, { } ] ] objects\minibiome\bioluminescence\glowbush\glowbush4.object 17,20d16 < "hasObjectItem" : false, < "breakDropOptions" : [ < [ [ "glowfibreorange", 3, { } ] ] < ], 43a40,43 > ], > > "breakDropOptions" : [ > [ [ "glowfibreorange", 3, { } ] ] objects\minibiome\bioluminescence\glowbush\glowbush5.object 17,20d16 < "hasObjectItem" : false, < "breakDropOptions" : [ < [ [ "glowfibreorange", 3, { } ] ] < ], 43a40,43 > ], > > "breakDropOptions" : [ > [ [ "glowfibreorange", 3, { } ] ] objects\minibiome\bioluminescence\glowflower\glowflower1.object 17d16 < "hasObjectItem" : false, objects\minibiome\bioluminescence\glowflower\glowflower2.object 17d16 < "hasObjectItem" : false, objects\minibiome\bioluminescence\glowflower\glowflower3.object 17d16 < "hasObjectItem" : false, objects\minibiome\bioluminescence\glowflower\glowflower4.object 17d16 < "hasObjectItem" : false, objects\minibiome\bioluminescence\glowflower\glowflower5.object 17d16 < "hasObjectItem" : false, objects\wired\drain\drain.lua 27c27 < world.destroyLiquid(self.drainPos) --- > world.forceDestroyLiquid(self.drainPos) objects\wired\drain\drain.object 19c19 < "anchors" : [ "bottom" ] --- > "anchors" : [ "background" ] objects\wired\logic\countdowntimer.lua 5c5 < storage.timerDuration = math.floor((storage.timerDuration or entity.configParameter("duration", 5)) + 0.5) --TODO: read this value as integral to avoid conversion --- > storage.timerDuration = storage.timerDuration or entity.configParameter("duration", 5) 38c38 < end \ No newline at end of file --- > end objects\wired\logic\timer.lua 2d1 < entity.setInteractive(false) 28c27 < if not entity.getInboundNodeLevel(0) then --- > if (not entity.isInboundNodeConnected(0)) or entity.getInboundNodeLevel(0) then 34a34,36 > else > storage.timer = 0 > output(false) 36c38 < end --- > end \ No newline at end of file projectiles\npcs\blueflame\blueflame.projectile 5c5 < "animationCycle" : 1, --- > "animationCycle" : 1.05, projectiles\npcs\flame\flame.projectile 5c5 < "animationCycle" : 1, --- > "animationCycle" : 1.05, scripts\behavior.lua 528a529 > --world.logInfo("%s %s", self.name, result) 555a557,690 > -- DATABASE > ----------------------------------------------------------- > > BData = {} > > function BData:setNumber(key, number) > self.numbers = self.numbers or {} > self.numbers[key] = number > end > > function BData:getNumber(key) > self.numbers = self.numbers or {} > if type(key) == "number" then > return key > else > return self.numbers[key] > end > end > > function BData:setEntity(key, entityId) > self.entities = self.entities or {} > self.entities[key] = entityId > end > > function BData:getEntity(key) > self.entities = self.entities or {} > if type(key) == "number" then > return key > elseif key == "self" then > return entity.id() > else > return self.entities[key] > end > end > > function BData:setVec2(key, vector) > self.vectors = self.vectors or {} > self.vectors[key] = vector > end > > function BData:getVec2(key) > self.vectors = self.vectors or {} > if type(key) == "table" then > return key > else > return self.vectors[key] > end > end > > function BData:setPosition(key, position) > self.positions = self.positions or {} > self.positions[key] = position > end > > function BData:getPosition(key) > self.positions = self.positions or {} > if type(key) == "table" then > return key > elseif key == "self" then > return mcontroller.position() > else > return self.positions[key] > end > end > > BData.setListTypes = { > setEntity = BData.setEntity, > setNumber = BData.setNumber, > setPosition = BData.setPosition, > setVec2 = BData.setVec2 > } > > function BData.setListType(args) > return args.setEntity and "setEntity" or > args.setNumber and "setNumber" or > args.setPosition and "setPosition" or > args.setVec2 and "setVec2" > end > > BData.getListTypes = { > getEntity = BData.getEntity, > getNumber = BData.getNumber, > getPosition = BData.getPosition, > getVec2 = BData.getVec2 > } > > function BData.getListType(args) > return args.getEntity and "getEntity" or > args.getNumber and "getNumber" or > args.getPosition and "getPosition" or > args.getVec2 and "getVec2" > end > > function BData:pushList(listKey, value) > self.lists = self.lists or {} > self.lists[listKey] = self.lists[listKey] or {} > table.insert(self.lists[listKey], 1, value) > return true > end > > function BData:popList(listKey, listType, toIndex) > self.lists = self.lists or {} > self.lists[listKey] = self.lists[listKey] or {} > if self.lists[listKey][1] then > if toIndex then > self[listType](self, toIndex, self.lists[listKey][1]) > end > table.remove(self.lists[listKey], 1) > return true > end > return false > end > > function BData:getList(listKey, listType, toIndex) > self.lists = self.lists or {} > self.lists[listKey] = self.lists[listKey] or {} > if self.lists[listKey][1] then > if toIndex then > self[listType](self, toIndex, self.lists[listKey][1]) > end > return true > end > return false > end > > function BData:inList(listKey, value) > self.lists = self.lists or {} > self.lists[listKey] = self.lists[listKey] or {} > for _,v in ipairs(self.lists[listKey]) do > if v == value then return true end > end > return false > end > ----------------------------------------------------------- 608a744,789 > end > > --Lists > function listPush(args) > args = parseArgs(args, { > }) > local getType = BData.getListType(args) > local value = BData[getType](BData, args[getType]) > return BData:pushList(args.list, value) > end > > function listPop(args) > args = parseArgs(args, { > }) > local setType = BData.setListType(args) > local toIndex = setType and args[setType] > return BData:popList(args.list, setType, toIndex) > end > > function listGet(args) > args = parseArgs(args, { > }) > local setType = BData.setListType(args) > local toIndex = setType and args[setType] > return BData:getList(args.list, setType, toIndex) > end > > function listContains(args) > args = parseArgs(args, { > }) > local getType = BData.getListType(args) > local value = BData[getType](BData, args[getType]) > return BData:inList(args.list, value) > end > > function setEntity(args) > args = parseArgs(args, { > entity = "self", > setEntity = "target" > }) > > local entityId = BData:getEntity(args.entity) > if entityId == nil then return false end > > BData:setEntity(args.setEntity, entityId) > return true scripts\actions\entities.lua 1,11c1 < function getEntity(entityId) < if type(entityId) == "number" then < return entityId < elseif entityId == "self" then < return entity.id() < else < return self.entities[entityId] < end < end < < function setEntity(args) --- > function entityExists(args) 13,14c3 < entity = "self", < toEntity = "entity" --- > entity = "self" 16,17d4 < local entityId = getEntity(args.entity) < if entityId == nil then return false end 19,20c6,7 < self.entities[args.toEntity] = entityId < return true --- > local entityId = BData:getEntity(args.entity) > return entityId and world.entityExists(entityId) 29c16 < local entityId = getEntity(args.entity) --- > local entityId = BData:getEntity(args.entity) 42c29 < local entityId = getEntity(args.entity) --- > local entityId = BData:getEntity(args.entity) 51,52c38 < entity = "self", < range = 10 --- > entity = "self" 55c41 < local entityId = getEntity(args.entity) --- > local entityId = BData:getEntity(args.entity) 67,68c53,54 < local entityId = getEntity(args.entity) < local targetId = getEntity(args.toEntity) --- > local entityId = BData:getEntity(args.entity) > local targetId = BData:getEntity(args.toEntity) 85c71 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 90c76 < self.entities[args.toEntity] = nearEntities[1] --- > BData:setEntity(args.toEntity, nearEntities[1]) 106c92 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 122c108 < self.entities[args.toEntity] = loungables[1] --- > BData:setEntity(args.toEntity, loungables[1]) 137c123 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 142c128 < self.entities[args.toEntity] = objectId --- > BData:setEntity(args.toEntity, objectId) 158c144 < local entityId = getEntity(entity) --- > local entityId = BData:getEntity(entity) 173c159 < local objectId = getEntity(args.entity) --- > local objectId = BData:getEntity(args.entity) scripts\actions\position.lua 1,18d0 < --Gets a stored position by its index < function getPosition(key) < self.positions = self.positions or {} < if type(key) == "table" then return key end < < --Default to own position < if key == nil or key == "self" then < return mcontroller.position() < end < < return self.positions[key] < end < < function setPosition(key,value) < self.positions = self.positions or {} < self.positions[key] = value < end < 25c7 < local position = getPosition(args.fromIndex) --- > local position = BData:getPosition(args.fromIndex) 30c12 < setPosition(args.toIndex, vec2.add(position, args.offset)) --- > BData:setPosition(args.toIndex, vec2.add(position, args.offset)) 41c23 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 45c27 < setPosition(args.toIndex, vec2.add(position, offset)) --- > BData:setPosition(args.toIndex, vec2.add(position, offset)) 58c40 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) 68c50 < setPosition(args.toPosition, position) --- > BData:setPosition(args.toPosition, position) 77c59 < local position = getPosition(args.position) --- > local position = BData:getPosition(args.position) species\novakid.species 15,16c15,16 < { "item" : "novakidsuspenders" }, < { "item" : "novakidsuspenderspants" }, --- > { "item" : "novakidfancychest" }, > { "item" : "novakidfancypants" }, 18a19,20 > { "item" : "novakidsuspenders" }, > { "item" : "novakidsuspenderspants" }, species\penguin.species 10,34c10 < "tier1" : [ < { "item" : "humantier1hammer" }, < { "item" : "humantier1shortsword" }, < { "item" : "humantier1broadsword" }, < { "item" : "humantier1spear" }, < { "item" : "humantier1axe" }, < { "item" : "humantier1dagger" }, < { "item" : "humantier1head" }, < { "item" : "humantier1chest" }, < { "item" : "humantier1pants" }, < { "item" : "conceptchest" }, < { "item" : "conceptlegs" }, < { "item" : "coolchest" }, < { "item" : "coollegs" }, < { "item" : "sweatervestchest" }, < { "item" : "sweatervestlegs" }, < { "item" : "workoutchest" }, < { "item" : "workoutlegs" }, < { "item" : "burger" }, < { "item" : "vegetablesoup" }, < { "item" : "bread" }, < { "item" : "sweetcorn" }, < { "item" : "candyapple" }, < { "item" : "icecream" } < ] --- > "tier1" : [ ] treasure\common.treasurepools 699c699 < {"weight" : 2.0, "item" : [ "coffee", 3]}, --- > {"weight" : 2.0, "item" : [ "coffeebeans", 3]},