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

@ -20,15 +20,15 @@ hud-tutorial_elements = Crafting
hud-temp_quest_headline = Greetings Traveller!
hud-temp_quest_text =
To begin your journey you could start looking through this village and gather some supplies.
You are welcome to take whatever you need on your journey!
Look at the bottom right of the screen to find various things like your bag, the crafting menu and the map.
The crafting stations allow you to create armor, weapons, food and much more!
The wild animals all around town are a great source of Animal Hide to create some protection against the dangers of the world.
Whenever you feel ready, try to get even better equipment from the many challenges marked on your map!
hud-spell = Spells
hud-diary = Diary
@ -39,8 +39,10 @@ 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
hud-mount = Mount
hud-sit = Sit
hud-sit = Sit

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

@ -784,12 +784,7 @@ Chest: Some((
model: "voxygen.voxel.sprite.chests.chest",
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