Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EnchantedSwordBiome.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
Microsoft.Xna.Framework
;
3
using
Newtonsoft.Json;
4
using
Terraria.GameContent.Generation
;
5
using
Terraria.ID
;
6
using
Terraria.WorldBuilding
;
7
8
namespace
Terraria.GameContent.Biomes
;
9
10
public
class
EnchantedSwordBiome
:
MicroBiome
11
{
12
[JsonProperty(
"ChanceOfEntrance"
)]
13
private
double
_chanceOfEntrance
;
14
15
[JsonProperty(
"ChanceOfRealSword"
)]
16
private
double
_chanceOfRealSword
;
17
18
public
override
bool
Place
(
Point
origin,
StructureMap
structures)
19
{
20
Dictionary<ushort, int>
dictionary =
new
Dictionary<ushort, int>
();
21
WorldUtils
.
Gen
(
new
Point
(origin.
X
- 25, origin.
Y
- 25),
new
Shapes
.
Rectangle
(50, 50),
new
Actions
.
TileScanner
(0, 1).
Output
(dictionary));
22
if
(dictionary[0] + dictionary[1] < 1250)
23
{
24
return
false
;
25
}
26
Point
result;
27
bool
flag =
WorldUtils
.
Find
(origin,
Searches
.
Chain
(
new
Searches
.
Up
(1000),
new
Conditions
.
IsSolid
().
AreaOr
(1, 50).
Not
()),
out
result);
28
if
(
WorldUtils
.
Find
(origin,
Searches
.
Chain
(
new
Searches
.
Up
(origin.
Y
- result.
Y
),
new
Conditions
.
IsTile
(53)),
out
var
_
))
29
{
30
return
false
;
31
}
32
if
(!flag)
33
{
34
return
false
;
35
}
36
result.Y += 50;
37
ShapeData
shapeData
=
new
ShapeData
();
38
ShapeData
shapeData2
=
new
ShapeData
();
39
Point
point =
new
Point
(origin.
X
, origin.
Y
+ 20);
40
Point
point2
=
new
Point
(origin.
X
, origin.
Y
+ 30);
41
bool
[] array =
new
bool
[
TileID
.
Sets
.
GeneralPlacementTiles
.Length];
42
for
(
int
i = 0; i < array.Length; i++)
43
{
44
array[i] =
TileID
.
Sets
.
GeneralPlacementTiles
[i];
45
}
46
array[21] =
false
;
47
array[467] =
false
;
48
double
num = 0.8 +
GenBase
.
_random
.NextDouble() * 0.5;
49
if
(!structures.
CanPlace
(
new
Rectangle
(point.
X
- (
int
)(20.0 * num), point.
Y
- 20, (
int
)(40.0 * num), 40), array))
50
{
51
return
false
;
52
}
53
if
(!structures.
CanPlace
(
new
Rectangle
(origin.
X
, result.
Y
+ 10, 1, origin.
Y
- result.
Y
- 9), array, 2))
54
{
55
return
false
;
56
}
57
WorldUtils
.
Gen
(point,
new
Shapes
.
Slime
(20, num, 1.0),
Actions
.
Chain
(
new
Modifiers
.
Blotches
(2, 0.4),
new
Actions
.
ClearTile
(
frameNeighbors
:
true
).Output(
shapeData
)));
58
WorldUtils
.
Gen
(
point2
,
new
Shapes
.
Mound
(14, 14),
Actions
.
Chain
(
new
Modifiers
.
Blotches
(2, 1, 0.8),
new
Actions
.
SetTile
(0),
new
Actions
.
SetFrames
(
frameNeighbors
:
true
).Output(
shapeData2
)));
59
shapeData
.Subtract(
shapeData2
, point,
point2
);
60
WorldUtils
.
Gen
(point,
new
ModShapes
.
InnerOutline
(
shapeData
),
Actions
.
Chain
(
new
Actions
.
SetTile
(2),
new
Actions
.
SetFrames
(
frameNeighbors
:
true
)));
61
WorldUtils
.
Gen
(point,
new
ModShapes
.
All
(
shapeData
),
Actions
.
Chain
(
new
Modifiers
.
RectangleMask
(-40, 40, 0, 40),
new
Modifiers
.
IsEmpty
(),
new
Actions
.
SetLiquid
()));
62
WorldUtils
.
Gen
(point,
new
ModShapes
.
All
(
shapeData
),
Actions
.
Chain
(
new
Actions
.
PlaceWall
(68),
new
Modifiers
.
OnlyTiles
(2),
new
Modifiers
.
Offset
(0, 1),
new
ActionVines
(3, 5, 382)));
63
if
(
GenBase
.
_random
.NextDouble() <=
_chanceOfEntrance
||
WorldGen
.
tenthAnniversaryWorldGen
)
64
{
65
ShapeData
data =
new
ShapeData
();
66
WorldUtils
.
Gen
(
new
Point
(origin.
X
, result.
Y
+ 10),
new
Shapes
.
Rectangle
(1, origin.
Y
- result.
Y
- 9),
Actions
.
Chain
(
new
Modifiers
.
Blotches
(2, 0.2),
new
Modifiers
.
SkipTiles
(191, 192),
new
Actions
.
ClearTile
().
Output
(data),
new
Modifiers
.
Expand
(1),
new
Modifiers
.
OnlyTiles
(53),
new
Actions
.
SetTile
(397).
Output
(data)));
67
WorldUtils
.
Gen
(
new
Point
(origin.
X
, result.
Y
+ 10),
new
ModShapes
.
All
(data),
new
Actions
.
SetFrames
(
frameNeighbors
:
true
));
68
}
69
if
(
GenBase
.
_random
.NextDouble() <=
_chanceOfRealSword
)
70
{
71
WorldGen
.
PlaceTile
(
point2
.X,
point2
.Y - 15, 187,
mute
:
true
,
forced
:
false
, -1, 17);
72
}
73
else
74
{
75
WorldGen
.
PlaceTile
(
point2
.X,
point2
.Y - 15, 186,
mute
:
true
,
forced
:
false
, -1, 15);
76
}
77
WorldUtils
.
Gen
(
point2
,
new
ModShapes
.
All
(
shapeData2
),
Actions
.
Chain
(
new
Modifiers
.
Offset
(0, -1),
new
Modifiers
.
OnlyTiles
(2),
new
Modifiers
.
Offset
(0, -1),
new
ActionGrass
()));
78
structures.
AddProtectedStructure
(
new
Rectangle
(point.
X
- (
int
)(20.0 * num), point.
Y
- 20, (
int
)(40.0 * num), 40), 10);
79
return
true
;
80
}
81
}
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
Terraria.GameContent.Biomes.EnchantedSwordBiome._chanceOfEntrance
double _chanceOfEntrance
Definition
EnchantedSwordBiome.cs:13
Terraria.GameContent.Biomes.EnchantedSwordBiome._chanceOfRealSword
double _chanceOfRealSword
Definition
EnchantedSwordBiome.cs:16
Terraria.GameContent.Biomes.EnchantedSwordBiome.Place
override bool Place(Point origin, StructureMap structures)
Definition
EnchantedSwordBiome.cs:18
Terraria.GameContent.Biomes.EnchantedSwordBiome
Definition
EnchantedSwordBiome.cs:11
Terraria.GameContent.Generation.ActionGrass
Definition
ActionGrass.cs:7
Terraria.GameContent.Generation.ActionVines
Definition
ActionVines.cs:7
Terraria.ID.TileID.Sets.GeneralPlacementTiles
static bool[] GeneralPlacementTiles
Definition
TileID.cs:221
Terraria.ID.TileID.Sets
Definition
TileID.cs:9
Terraria.ID.TileID
Definition
TileID.cs:7
Terraria.WorldBuilding.Actions.ClearTile
Definition
Actions.cs:156
Terraria.WorldBuilding.Actions.PlaceWall
Definition
Actions.cs:371
Terraria.WorldBuilding.Actions.SetFrames
Definition
Actions.cs:439
Terraria.WorldBuilding.Actions.SetLiquid
Definition
Actions.cs:398
Terraria.WorldBuilding.Actions.SetTile
Definition
Actions.cs:204
Terraria.WorldBuilding.Actions.TileScanner.Output
TileScanner Output(Dictionary< ushort, int > resultsOutput)
Definition
Actions.cs:86
Terraria.WorldBuilding.Actions.TileScanner
Definition
Actions.cs:61
Terraria.WorldBuilding.Actions.Chain
static GenAction Chain(params GenAction[] actions)
Definition
Actions.cs:470
Terraria.WorldBuilding.Actions
Definition
Actions.cs:11
Terraria.WorldBuilding.Conditions.IsSolid
Definition
Conditions.cs:51
Terraria.WorldBuilding.Conditions.IsTile
Definition
Conditions.cs:6
Terraria.WorldBuilding.Conditions
Definition
Conditions.cs:4
Terraria.WorldBuilding.GenAction.Output
GenAction Output(ShapeData data)
Definition
GenAction.cs:39
Terraria.WorldBuilding.GenBase._random
static UnifiedRandom _random
Definition
GenBase.cs:9
Terraria.WorldBuilding.GenBase
Definition
GenBase.cs:6
Terraria.WorldBuilding.GenCondition.AreaOr
GenCondition AreaOr(int width, int height)
Definition
GenCondition.cs:65
Terraria.WorldBuilding.GenCondition.Not
GenCondition Not()
Definition
GenCondition.cs:59
Terraria.WorldBuilding.MicroBiome
Definition
MicroBiome.cs:4
Terraria.WorldBuilding.ModShapes.All
Definition
ModShapes.cs:9
Terraria.WorldBuilding.ModShapes.InnerOutline
Definition
ModShapes.cs:69
Terraria.WorldBuilding.ModShapes
Definition
ModShapes.cs:7
Terraria.WorldBuilding.Modifiers.Blotches
Definition
Modifiers.cs:93
Terraria.WorldBuilding.Modifiers.Expand
Definition
Modifiers.cs:33
Terraria.WorldBuilding.Modifiers.IsEmpty
Definition
Modifiers.cs:445
Terraria.WorldBuilding.Modifiers.Offset
Definition
Modifiers.cs:509
Terraria.WorldBuilding.Modifiers.OnlyTiles
Definition
Modifiers.cs:239
Terraria.WorldBuilding.Modifiers.RectangleMask
Definition
Modifiers.cs:481
Terraria.WorldBuilding.Modifiers.SkipTiles
Definition
Modifiers.cs:374
Terraria.WorldBuilding.Modifiers
Definition
Modifiers.cs:8
Terraria.WorldBuilding.Searches.Up
Definition
Searches.cs:74
Terraria.WorldBuilding.Searches.Chain
static GenSearch Chain(GenSearch search, params GenCondition[] conditions)
Definition
Searches.cs:123
Terraria.WorldBuilding.Searches
Definition
Searches.cs:6
Terraria.WorldBuilding.ShapeData
Definition
ShapeData.cs:10
Terraria.WorldBuilding.Shapes.Mound
Definition
Shapes.cs:195
Terraria.WorldBuilding.Shapes.Rectangle
Definition
Shapes.cs:134
Terraria.WorldBuilding.Shapes.Slime
Definition
Shapes.cs:80
Terraria.WorldBuilding.Shapes
Definition
Shapes.cs:8
Terraria.WorldBuilding.StructureMap.AddProtectedStructure
void AddProtectedStructure(Rectangle area, int padding=0)
Definition
StructureMap.cs:78
Terraria.WorldBuilding.StructureMap.CanPlace
bool CanPlace(Rectangle area, int padding=0)
Definition
StructureMap.cs:16
Terraria.WorldBuilding.StructureMap
Definition
StructureMap.cs:9
Terraria.WorldBuilding.WorldUtils.Find
static bool Find(Point origin, GenSearch search, out Point result)
Definition
WorldUtils.cs:27
Terraria.WorldBuilding.WorldUtils.Gen
static bool Gen(Point origin, GenShape shape, GenAction action)
Definition
WorldUtils.cs:17
Terraria.WorldBuilding.WorldUtils
Definition
WorldUtils.cs:7
Terraria.WorldGen.PlaceTile
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
Definition
WorldGen.cs:50270
Terraria.WorldGen.tenthAnniversaryWorldGen
static bool tenthAnniversaryWorldGen
Definition
WorldGen.cs:1160
Terraria.WorldGen
Definition
WorldGen.cs:32
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
Terraria.GameContent.Biomes
Definition
DesertHouseBuilder.cs:6
Terraria.GameContent.Generation
Definition
ActionGrass.cs:4
Terraria.ID
Definition
AchievementHelperID.cs:1
Terraria.WorldBuilding
Definition
Actions.cs:8
Microsoft.Xna.Framework.Point.X
int X
Definition
Point.cs:14
Microsoft.Xna.Framework.Point.Y
int Y
Definition
Point.cs:17
Microsoft.Xna.Framework.Point
Definition
Point.cs:12
Microsoft.Xna.Framework.Rectangle
Definition
Rectangle.cs:12
source
Terraria.GameContent.Biomes
EnchantedSwordBiome.cs
Generated by
1.10.0