More spot features

This commit is contained in:
Monty Marz
2023-03-03 23:21:37 +00:00
parent 2fb20782e5
commit 9a025cfcc8
129 changed files with 1600 additions and 250 deletions

View File

@ -14,6 +14,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Suggests commands when an invalid one is entered in chat and added Client-side commands to /help.
- Moderator badge in the chat.
- More aggressive scene culling based on camera position to improve performance.
- Some chests requiring lockpicks or keys.
- Unlockable door blocks.
- Sprite rotation for Spots.
- Better entity placement options for spots.
### Changed
- Bats move slower and use a simple proportional controller to maintain altitude

View File

@ -0,0 +1,20 @@
#![enable(implicit_some)]
(
name: Name("Adept"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.dungeon.tier-5.enemy"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_low"),
active_hands: InHands((Choice([
(2, ModularWeapon(tool: Axe, material: Orichalcum, hands: One)),
(2, ModularWeapon(tool: Hammer, material: Orichalcum, hands: One)),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
],
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
name: Name("Novice"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.dungeon.tier-5.enemy"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_low"),
active_hands: InHands((Choice([
(2, Item("common.items.weapons.staff.cultist_staff")),
(1, Item("common.items.weapons.sceptre.sceptre_velorite_0")),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
],
)

View File

@ -0,0 +1,17 @@
#![enable(implicit_some)]
(
name: Name("Overseer"),
body: RandomWith("cultist_warlock"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.dungeon.tier-5.enemy"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_overseer"),
active_hands: InHands((Choice([
(1, Item("common.items.npc_weapons.staff.bipedlarge-cultist")),
(1, Item("common.items.npc_weapons.bow.bipedlarge-velorite")),
]), None)),
)),
),
meta: [],
)

View File

@ -0,0 +1,17 @@
#![enable(implicit_some)]
(
name: Name("Overseer"),
body: RandomWith("cultist_warlock"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.dungeon.tier-5.enemy"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_spellbinder"),
active_hands: InHands((Choice([
(1, Item("common.items.npc_weapons.staff.bipedlarge-cultist")),
(1, Item("common.items.npc_weapons.bow.bipedlarge-velorite")),
]), None)),
)),
),
meta: [],
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
name: Name("Argo"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.dungeon.tier-5.miniboss"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_boss"),
active_hands: InHands((Choice([
(1, Item("common.items.weapons.sceptre.sceptre_velorite_0")),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
],
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
name: Name("Haku"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.dungeon.tier-5.miniboss"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_boss"),
active_hands: InHands((Choice([
(1, Item("common.items.weapons.sceptre.sceptre_velorite_0")),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
],
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
name: Name("Trish"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.dungeon.tier-5.miniboss"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.spots.wizard_tower.wizard_boss"),
active_hands: InHands((Choice([
(1, Item("common.items.weapons.sceptre.sceptre_velorite_0")),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
],
)

View File

@ -0,0 +1,25 @@
#![enable(implicit_some)]
(
name: Name("Bowman"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.creature.humanoid"),
inventory: (
loadout: Inline((
inherit: Choice([
(1, Asset("common.loadout.world.traveler1.leather")),
(1, Asset("common.loadout.world.traveler2.carapace")),
(1, Asset("common.loadout.world.traveler2.scale")),
]),
active_hands: InHands((Choice([
(1, ModularWeapon(tool: Bow, material: Ironwood, hands: None)),
]), None)),
)),
items: [
(10, "common.items.consumable.potion_big"),
(10, "common.items.food.sunflower_icetea"),
],
),
meta: [],
)

View File

@ -0,0 +1,25 @@
#![enable(implicit_some)]
(
name: Name("Skinner"),
body: RandomWith("humanoid"),
alignment: Alignment(Npc),
loot: LootTable("common.loot_tables.creature.humanoid"),
inventory: (
loadout: Inline((
inherit: Choice([
(1, Asset("common.loadout.world.traveler1.leather")),
(1, Asset("common.loadout.world.traveler2.carapace")),
(1, Asset("common.loadout.world.traveler2.scale")),
]),
active_hands: InHands((Choice([
(1, ModularWeapon(tool: Axe, material: Cobalt, hands: None)),
]), None)),
)),
items: [
(10, "common.items.consumable.potion_big"),
(10, "common.items.food.sunflower_icetea"),
],
),
meta: [],
)

View File

@ -0,0 +1,11 @@
ItemDef(
name: "Rusty Tower Key",
description: "Smells like magic with a bit of... cheese?",
kind: Utility(
kind: Key,
),
amount: 1,
quality: Epic,
tags: [],
)

View File

@ -0,0 +1,11 @@
ItemDef(
name: "Common Lockpick",
description: "Used to open common locks. Will break after use.",
kind: Utility(
kind: Key,
),
amount: 1,
quality: Common,
tags: [Utility],
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
head: Choice([
(2, None),
(1, Item("common.items.armor.misc.head.hood")),
(1, Item("common.items.armor.misc.head.hood_dark")),
]),
shoulders: Item("common.items.armor.velorite_mage.shoulder"),
back: Item("common.items.armor.velorite_mage.back"),
chest: Item("common.items.armor.velorite_mage.chest"),
gloves: Item("common.items.armor.velorite_mage.hand"),
belt: Item("common.items.armor.velorite_mage.belt"),
legs: Item("common.items.armor.velorite_mage.pants"),
feet: Item("common.items.armor.velorite_mage.foot"),
lantern: Choice([
(1, Item("common.items.lantern.geode_purp")),
(2, None),
]),
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
head: Choice([
(2, None),
(1, Item("common.items.armor.misc.head.hood")),
(1, Item("common.items.armor.misc.head.hood_dark")),
]),
shoulders: Item("common.items.armor.velorite_mage.shoulder"),
back: Item("common.items.armor.velorite_mage.back"),
chest: Item("common.items.armor.velorite_mage.chest"),
gloves: Item("common.items.armor.velorite_mage.hand"),
belt: Item("common.items.armor.velorite_mage.belt"),
legs: Item("common.items.armor.velorite_mage.pants"),
feet: Item("common.items.armor.velorite_mage.foot"),
lantern: Choice([
(1, Item("common.items.lantern.geode_purp")),
(2, None),
]),
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
head: Choice([
(2, None),
(1, Item("common.items.armor.misc.head.hood")),
(1, Item("common.items.armor.misc.head.hood_dark")),
]),
shoulders: Item("common.items.armor.velorite_mage.shoulder"),
back: Item("common.items.armor.velorite_mage.back"),
chest: Item("common.items.armor.velorite_mage.chest"),
gloves: Item("common.items.armor.velorite_mage.hand"),
belt: Item("common.items.armor.velorite_mage.belt"),
legs: Item("common.items.armor.velorite_mage.pants"),
feet: Item("common.items.armor.velorite_mage.foot"),
lantern: Choice([
(1, Item("common.items.lantern.geode_purp")),
(2, None),
]),
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
head: Choice([
(2, None),
(1, Item("common.items.armor.misc.head.hood")),
(1, Item("common.items.armor.misc.head.hood_dark")),
]),
shoulders: Item("common.items.armor.velorite_mage.shoulder"),
back: Item("common.items.armor.velorite_mage.back"),
chest: Item("common.items.armor.velorite_mage.chest"),
gloves: Item("common.items.armor.velorite_mage.hand"),
belt: Item("common.items.armor.velorite_mage.belt"),
legs: Item("common.items.armor.velorite_mage.pants"),
feet: Item("common.items.armor.velorite_mage.foot"),
lantern: Choice([
(1, Item("common.items.lantern.geode_purp")),
(2, None),
]),
)

View File

@ -0,0 +1,19 @@
#![enable(implicit_some)]
(
head: Choice([
(2, None),
(1, Item("common.items.armor.misc.head.hood")),
(1, Item("common.items.armor.misc.head.hood_dark")),
]),
shoulders: Item("common.items.armor.velorite_mage.shoulder"),
back: Item("common.items.armor.velorite_mage.back"),
chest: Item("common.items.armor.velorite_mage.chest"),
gloves: Item("common.items.armor.velorite_mage.hand"),
belt: Item("common.items.armor.velorite_mage.belt"),
legs: Item("common.items.armor.velorite_mage.pants"),
feet: Item("common.items.armor.velorite_mage.foot"),
lantern: Choice([
(1, Item("common.items.lantern.geode_purp")),
(2, None),
]),
)

View File

@ -2197,4 +2197,12 @@
craft_sprite: Some(CraftingBench),
is_recycling: false,
),
"lockpick": (
output: ("common.items.utility.lockpick_0", 10),
inputs: [
(Item("common.items.mineral.ingot.copper"), 3, false),
(Item("common.items.tool.craftsman_hammer"), 0, false),
],
craft_sprite: Some(CraftingBench),
),
}

BIN
assets/voxygen/background/bg_12.jpg (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/background/bg_13.jpg (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/background/bg_2.jpg (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/background/bg_7.jpg (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/element/items/key_rusty-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/items/lockpick.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -39,6 +39,8 @@ hud-collect = Collect
hud-pick_up = Pick up
hud-open = Open
hud-use = Use
hud-unlock-requires = Open with { $item }
hud-unlock-consumes = Use { $item } to open
hud-mine = Mine
hud-talk = Talk
hud-trade = Trade

View File

@ -92,4 +92,4 @@ loading-tips =
.a18 = Need more bags or better armor to continue your journey? Press '{ $gameinput-crafting }' to open the crafting menu!
.a19 = Press '{ $gameinput-roll }' to roll. Rolling can be used to move faster and dodge enemy attacks.
.a20 = Wondering what an item is used for? Search 'input:<item name>' in crafting to see what recipes it's used in.
.a21 = Find something cool? Take a screenshot of it with '{ $gameinput-screenshot }'.
.a21 = You can take screenshots with '{ $gameinput-screenshot }'.

View File

@ -4820,4 +4820,14 @@
"voxel.weapon.component.sceptre.core.light",
(0.0, 0.0, 0.0), (-100.0, 250.0, 15.0), 0.7,
),
// Keys
Simple("common.items.keys.rusty_tower_key"): VoxTrans(
"element.items.key_rusty-0",
(0.0, 0.0, 0.0), (-100.0, 250.0, 15.0), 1.0,
),
// Lockpicks
Simple("common.items.utility.lockpick_0"): VoxTrans(
"element.items.lockpick",
(0.0, 0.0, 0.0), (-100.0, 250.0, 15.0), 1.0,
),
})

BIN
assets/voxygen/voxel/armor/velorite_battlemage/chest-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/velorite_battlemage/hand-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/velorite_battlemage/hat.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/velorite_battlemage/pants-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/armor/warlock/spellbinder-set.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -919,6 +919,9 @@
Simple("common.items.log.hardwood"): "voxel.sprite.wood.item.hardwood",
Simple("common.items.log.ironwood"): "voxel.sprite.wood.item.ironwood",
Simple("common.items.log.wood"): "voxel.sprite.wood.item.wood",
// Keys and Lockpicks
Simple("common.items.keys.rusty_tower_key"): "element.items.key_rusty-0",
Simple("common.items.utility.lockpick_0"): "element.items.lockpick",
// Gliders
Simple("common.items.glider.cloverleaf"): "voxel.glider.starter",
Simple("common.items.glider.basic_white"): "voxel.glider.basic_white",

BIN
assets/voxygen/voxel/object/tent.vox (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/camp/camp.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/camp/camp_pirate.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/camp/camp_snow.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/door/door_dark-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/furniture/door_block.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/furniture/keyhole_block.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/furniture/lamp_wall-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/grave/grave_0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/grave/grave_1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/grave/grave_2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/grave/mud.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/wizard/candle.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/wizard/magical_barrier.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/wizard/magical_seal.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -785,11 +785,6 @@ Chest: Some((
offset: (-7.0, -5.0, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.chests.chest_gold",
offset: (-7.0, -5.0, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.chests.chest_dark",
offset: (-7.0, -5.0, -0.0),
@ -803,6 +798,17 @@ Chest: Some((
],
wind_sway: 0.0,
)),
CommonLockedChest: Some((
variations: [
(
model: "voxygen.voxel.sprite.chests.chest_gold",
offset: (-7.0, -5.0, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Dungeon Chests
DungeonChest0: Some((
variations: [
@ -1889,6 +1895,7 @@ StreetLampTall: Some((
wind_sway: 0.0,
)),
// Door
// To make doors swing add them in voxygen\src\scene\terrain L. 333
Door: Some((
variations: [
(
@ -1899,6 +1906,16 @@ Door: Some((
],
wind_sway: 0.0,
)),
DoorDark: Some((
variations: [
(
model: "voxygen.voxel.sprite.door.door_dark-0",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Bed
Bed: Some((
variations: [
@ -2162,6 +2179,16 @@ WallLampSmall: Some((
],
wind_sway: 0.0,
)),
WallLampWizard: Some((
variations: [
(
model: "voxygen.voxel.sprite.furniture.lamp_wall-2",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
ChristmasOrnament: Some((
variations: [
(
@ -2566,6 +2593,16 @@ PotionMinor: Some((
],
wind_sway: 0.0,
)),
PotionDummy: Some((
variations: [
(
model: "voxygen.voxel.object.potion_green",
offset: (-5.0, -5.0, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Ground Fire Bowls
FireBowlGround: Some((
variations: [
@ -3784,6 +3821,26 @@ WitchWindow: Some((
],
wind_sway: 0.0,
)),
Keyhole: Some((
variations: [
(
model: "voxygen.voxel.sprite.furniture.keyhole_block",
offset: (-5.5, -5.5, 0.0),
lod_axes: (0.5, 0.5, 0.5),
),
],
wind_sway: 0.0,
)),
KeyDoor: Some((
variations: [
(
model: "voxygen.voxel.sprite.furniture.door_block",
offset: (-5.5, -5.5, 0.0),
lod_axes: (0.5, 0.5, 0.5),
),
],
wind_sway: 0.0,
)),
// Bones
Bones: Some((
variations: [
@ -4118,4 +4175,107 @@ Eldwood: Some((
],
wind_sway: 0.0,
)),
// Bedrolls
Bedroll: Some((
variations: [
(
model: "voxygen.voxel.sprite.camp.camp",
offset: (-8.0, -16.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
Tent: Some((
variations: [
(
model: "voxygen.voxel.object.tent",
offset: (-7.5, -15.5, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
BedrollSnow: Some((
variations: [
(
model: "voxygen.voxel.sprite.camp.camp_snow",
offset: (-8.0, -16.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
BedrollPirate: Some((
variations: [
(
model: "voxygen.voxel.sprite.camp.camp_pirate",
offset: (-8.0, -16.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
// Graves
Grave: Some((
variations: [
(
model: "voxygen.voxel.sprite.grave.mud",
offset: (-6.0, -7.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
Gravestone: Some((
variations: [
(
model: "voxygen.voxel.sprite.grave.grave_0",
offset: (1.0, -6.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
(
model: "voxygen.voxel.sprite.grave.grave_1",
offset: (1.0, -6.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
(
model: "voxygen.voxel.sprite.grave.grave_2",
offset: (1.0, -6.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
// Wizard assets
MagicalBarrier: Some((
variations: [
(
model: "voxygen.voxel.sprite.wizard.magical_barrier",
offset: (-10.0, -0.0, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
MagicalSeal: Some((
variations: [
(
model: "voxygen.voxel.sprite.wizard.magical_seal",
offset: (-16.0, -16.0, -1.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
Candle: Some((
variations: [
(
model: "voxygen.voxel.sprite.wizard.candle",
offset: (-5.5, -5.5, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
}

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.gnarling_totem",
specifier: "world.structure.spots.gnarling_totem",
center: (9, 5, 5),
custom_indices: {
217: Filled(GlowingRock, (r: 0, g: 255, b: 246)),

View File

@ -0,0 +1,20 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.camp",
center: (3, 3, 1),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
9: RotatedSprite(Bedroll, 0),
10: Grass,
11: Sprite(CookingPot),
12: Sprite(Chest),
13: RotatedSprite(Tent, 0),
14: RotatedSprite(Tent, 4),
15: RotatedSprite(Tent, 6),
16: RotatedSprite(Tent, 2),
251: Sprite(SmokeDummy),
},
),
]

View File

@ -0,0 +1,15 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.camp",
center: (3, 3, 1),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
9: Sprite(BedrollPirate),
10: Grass,
11: Sprite(Chest),
251: Grass,
},
),
]

View File

@ -0,0 +1,15 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.camp",
center: (3, 3, 1),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
9: Sprite(BedrollSnow),
10: None,
11: Sprite(CookingPot),
251: Sprite(SmokeDummy),
},
),
]

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.gnome_spring",
specifier: "world.structure.spots.gnome_spring",
center: (10, 10, 4),
custom_indices: {
136: Filled(GlowingRock, (r: 0, g: 255, b: 255)),

View File

@ -0,0 +1,16 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.grave_small",
center: (2, 2, 1),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
9: RotatedSprite(Grave, 6),
10: RotatedSprite(Gravestone, 6),
11: Grass,
12: None,
13: RotatedSprite(Bones, 4),
},
),
]

View File

@ -0,0 +1,13 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.jungle_outpost",
center: (32, 28, 33),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
156: Sprite(FireBowlGround),
157: EntitySpawner("common.entity.wild.aggressive.occult_saurok", 1.0),
},
),
]

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.saurok-altar",
specifier: "world.structure.spots.saurok-altar",
center: (10, 13, 3),
custom_indices: {
105: Filled(GlowingRock, (r: 161, g: 255, b: 133)),

View File

@ -0,0 +1,12 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.saurok_totem_0",
center: (8, 8, 20)
),
(
specifier: "world.structure.spots.saurok_totem_1",
center: (8, 8, 20)
),
]

View File

@ -0,0 +1,12 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.temple_small_0",
center: (11, 25, 27)
),
(
specifier: "world.structure.spots.temple_small_1",
center: (11, 11, 27)
),
]

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.myrmidon-temple",
specifier: "world.structure.spots.myrmidon-temple",
center: (13, 23, 5),
),
]

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.shipwreck",
specifier: "world.structure.spots.shipwreck",
center: (32, 14, 16),
),
]

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.shipwreck2",
specifier: "world.structure.spots.shipwreck2",
center: (32, 31, 14),
/// ( X, Y, Z, )
custom_indices: {

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.igloo",
specifier: "world.structure.spots.igloo",
center: (14, 13, 3),
),
]

View File

@ -0,0 +1,32 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.spots.mage_tower",
center: (32, 32, 19),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
10: Sprite(WitchWindow),
11: RotatedSprite(Window1, 0),
12: RotatedSprite(Window1, 2),
44: Filled(GlowingRock, (r: 46, g: 10, b: 27)),
45: Filled(GlowingRock, (r: 0, g: 204, b: 204)),
233: RotatedSprite(DoorDark, 2),
234: RotatedSprite(DoorDark, 6),
239: EntitySpawner("common.entity.spot.wizard.wizard_argo", 1.0),
240: EntitySpawner("common.entity.spot.wizard.wizard_trish", 1.0),
241: EntitySpawner("common.entity.spot.wizard.wizard_haku", 1.0),
242: EntitySpawner("common.entity.spot.wizard.novice", 1.0),
243: EntitySpawner("common.entity.spot.wizard.adept", 1.0),
245: EntitySpawner("common.entity.wild.aggressive.bat", 0.4),
246: Sprite(WallLampWizard),
249: RotatedSprite(DoorDark, 8),
250: RotatedSprite(DoorDark, 4),
252: Keyhole("common.items.keys.rusty_tower_key"),
253: Sprite(KeyDoor),
235: Sprite(Candle),
},
),
]

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.pirate_hideout",
specifier: "world.structure.spots.pirate_hideout",
center: (32, 27, 5),
custom_indices: {
12: Sprite(Cauldron),

View File

@ -3,7 +3,14 @@
[
(
specifier: "world.structure.natural.troll_cave",
center: (23, 25, 12),
/// ( X, Y, Z, )
center: (23, 25, 17),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
241: EntitySpawner("common.entity.wild.aggressive.cave_troll", 1.0),
242: Sprite(Mushroom),
243: Sprite(CommonLockedChest),
244: Sprite(Bones),
245: EntitySpawner("common.entity.wild.aggressive.bat", 0.4),
},
),
]

View File

@ -0,0 +1,16 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.natural.troll_cave",
center: (23, 25, 17),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
241: EntitySpawner("common.entity.wild.aggressive.mountain_troll", 1.0),
242: Sprite(Mushroom),
243: Sprite(CommonLockedChest),
244: Sprite(Bones),
245: EntitySpawner("common.entity.wild.aggressive.bat", 0.4),
},
),
]

View File

@ -0,0 +1,16 @@
#![enable(unwrap_newtypes)]
[
(
specifier: "world.structure.natural.troll_cave",
center: (23, 25, 17),
custom_indices: {
8: Filled(Air, (r: 255, g: 255, b: 255)),
241: EntitySpawner("common.entity.wild.aggressive.swamp_troll", 1.0),
242: Sprite(Mushroom),
243: Sprite(CommonLockedChest),
244: Sprite(Bones),
245: EntitySpawner("common.entity.wild.aggressive.bat", 0.4),
},
),
]

View File

@ -2,14 +2,16 @@
[
(
specifier: "world.structure.natural.witch-hut-black_0",
specifier: "world.structure.spots.witch-hut-black_0",
center: (10, 13, 16),
custom_indices: {
12: Sprite(Cauldron),
10: Sprite(WitchWindow),
44: Filled(GlowingRock, (r: 54, g: 180, b: 64)),
8: Filled(Air, (r: 255, g: 255, b: 255)),
249: Sprite(PotionMinor),
247: RotatedSprite(DoorDark, 4),
248: RotatedSprite(DoorDark, 0),
249: Sprite(PotionDummy),
251: Sprite(SmokeDummy),
},
),

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.dwarven_grave",
specifier: "world.structure.spots.dwarven_grave",
center: (20, 23, 5),
custom_indices: {
151: Filled(GlowingRock, (r: 50, g: 255, b: 210)),

View File

@ -2,7 +2,7 @@
[
(
specifier: "world.structure.natural.airship-crashsite_0",
specifier: "world.structure.spots.airship-crashsite_0",
center: (28, 40, 14),
),
]

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/world/structure/natural/untitled.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/world/structure/spots/camp.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/dwarven_grave.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/grave_small.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/jungle_outpost.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/mage_tower.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/saurok_totem_0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/saurok_totem_1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/temple_small_0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/temple_small_1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/tree-house.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/world/structure/spots/witch-hut-black_0.vox (Stored with Git LFS) Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More