This commit is contained in:
Regalis
2016-02-05 19:34:10 +02:00
parent ebbcf8b835
commit 6db3062cc8
23 changed files with 327 additions and 49 deletions

View File

@@ -431,6 +431,9 @@
<Content Include="Content\Items\Clothes\securitygear.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Items\connectionpanel.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Items\Electricity\lamp.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -849,8 +852,12 @@
</Content>
<Content Include="Data\ContentPackages\Vanilla 0.3.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content>
<Content Include="Icon.ico" />
<Content Include="Mods\info.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="OpenAL32.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -1172,8 +1179,8 @@
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Data\SavedSubs\" />
<Folder Include="Data\Saves\" />
<Folder Include="Submarines\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Farseer Physics Engine 3.5\Farseer Physics MonoGame.csproj">

View File

@@ -10,6 +10,7 @@
<Sprite texture ="tools.png" sourcerect="0,17,41,17" depth="0.5"/>
<!-- the item takes 10 seconds to break down in a deconstructor and turns into a polycarbonate bar and a steel bar -->
<Deconstruct time="10">
<Item name="Polycarbonate Bar"/>
<Item name="Steel Bar"/>
@@ -33,7 +34,8 @@
<!-- welding a door, it will get stuck after a while -->
<StatusEffect type="OnUse" target="UseTarget" targetnames="Door,Windowed Door" Stuck="20.0" Condition="3.0"/>
<!-- the tool can fix structures, i.e. walls and windows -->
<Fixable name="structure"/>
<!-- construction skill 20 required to use the item -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View File

@@ -34,6 +34,7 @@
<Character file="Content\Characters\TigerThresher\tigerthresher.xml" />
<Character file="Content\Characters\Watcher\watcher.xml" />
<Structure file="Content\Map\StructurePrefabs.xml" />
<RandomEvents file="Content\randomevents.xml" />
<Jobs file="Content\Jobs.xml" />
<Executable file="Barotrauma.exe" />
</contentpackage>

225
Subsurface/Mods/info.txt Normal file
View File

@@ -0,0 +1,225 @@
------------------------------------------------------------------------
Modding info/tips:
------------------------------------------------------------------------
When doing an automatic update through the launcher, any old/unnecessary
files in the Content folder will be deleted. This also includes any new
files you may have added to the folder.
It is recommended to save all modifications to the ''Mods'' folder, or
in the case of custom subs, to the 'Submarines'' folder.
----------------------------------
Content Packages:
----------------------------------
Content packages determine which configuration files the game will be using.
This includes the configuration files for items, map structures, characters,
monsters and jobs.
In the multiplayer mode, players are required to use the same content package
as the server or they won't be able to join.
If you are making a mod for the game, it is recommended to create a new content
package instead of just replacing existing files in the content folder.
This way you and anyone else using the mod can easily change between different
mods and the vanilla version, without having to manually replace files in the
Content folder or keep backups of different files.
The content packages are configured in XML files which are saved in Data\ContentPackages.
Example:
A very simple content package could be configured as follows:
<contentpackage name="BestModEver" path="Data\ContentPackages\BestModEver">
<Item file="Mods\BestModEver\items.xml" />
<Character file="Mods\BestModEver\Human\human.xml" />
<Character file="Mods\BestModEver\Cthulhu\cthulhu.xml" />
<Character file="Content\Characters\Crawler\crawler.xml" />
<Structure file="Content\Map\StructurePrefabs.xml" />
<Jobs file="Content\Jobs.xml" />
<RandomEvents file="Mods\BestModEver\randomevents.xml" />
<Executable file="Barotrauma.exe" />
</contentpackage>
This content package would replace all the items in the game with whatever items are
configured in the "Mods\BestModEver\items.xml" file. It would also use a modified
version of the human characters and have all the monsters in the game replaced with
crawlers and Cthulhus. The random events have also been changed - perhaps by adding
a new event that spawns Cthulhu and removing the events that spawn monsters/items
which aren't included in the mod.
----------------------------------
Creature modding:
----------------------------------
All the creatures/characters in the game are configured in XML files.
The XML files should be formatted in the following way:
<character name="something">
<ragdoll attribute1="something" attribute2="something">
<limb id = 0>
<sprite texture="texturepath" sourcerect="0,0,width,height"/>
<attack type="something"/>
</limb>
<limb id = 1>
<sprite texture="texturepath" sourcerect="0,0,width,height"/>
</limb>
<joint limb1="0" limb1anchor="x,y" limb2="1" limb2anchor="x,y"/>
</ragdoll>
<ai attribute1="something" attribute2="something"/>
</character>
------------------------------------------
Elements:
Character:
- has to be the root element of the file
Attributes:
name: the name of the creature
humanoid: true/false, if set to true the character is animated using
a bipedal animator (like humans)
needsair: true/false, does the character drown/suffocate without
oxygen (false by default)
drowningtime: how fast the character drowns (in seconds)
doesbleed: if set to false, the character takes no bleeding damage
health: self explanatory (100.0 by default)
Ragdoll:
- has to be a child element of the character element
Attributes:
headposition: how high from the ground the head of the character should
be when the character is standing (50.0 by default)
headangle: an angle which the head is rotated to when the character is walking
(0.0 by default, meaning that the head will face straight forward)
torsoposition: same as headposition but for torso (50.0 by default)
torsoangle: an angle which the torso is rotated to when the character is walking
(0.0 by default, meaning that it will face straight forward)
waveamplitude, wavelength: if the character is not a humanoid, it will
do a "wave-like" swimming movement with the selected amplitude and
wavelength. To put it simply, amplitude affects how large up-and-down
movement the character will do and wavelength affects how fast the
character does the movement (both 0.0 by default)
flip: should the entire character be "mirrored" over the y-axis when it
switches its movement direction from left to right or vice versa,
or should it just rotate along the z-axis (false by default)
walkspeed, swimspeed: how fast the character should move on land and
in water, (the actual speeds are also affected by the weight, shape
and steerforces of individual limbs) (both 1.0 by default)
swimspeed: how fast the character should move in water
Limb:
- an individual part of the ragdoll
- has to be a child element of the ragdoll element
Attributes:
id: an integer that is used to distinguish between limbs when connecting them
with joints. The first limb should have the id "0", the second "1" and so on.
radius, width, height: used for setting the dimensions of the physics body
of the limb. If only radius is set, the limb will be a circle with
the selected radius. If width and height are set, it will be a rectangle.
If radius and height are set, it will be a capsule.
density: the mass of the limb will be area_of_the_limb * density (default 10.0)
friction: the friction coefficient of the limb (0.3 by default)
flip: true/false, if set to true the limb will be "flipped" from one side
to another when the character turns around (as in, if a character is
facing left and has an arm extended left, the arm will be extended
to the right when the character faces to the right) (false by default)
ignorecollisions: true/false, should the limb collide with walls (true by default)
impacttolerance: if the limb receives an impact larger than this value, it takes
damage (20.0 by default)
type: determines how the limb should be animated and what kind of items can be
equipped on the limb. Can be set to None, LeftHand, RightHand, LeftArm,
RightArm, LeftLeg, RightLeg, LeftFoot, RightFoot, Head, Torso, Waist, Tail,
Legs, RightThigh or LeftThigh
pullpos: when animating the character, forces will be applied to this
point of the physics body of the limb. Defaults to "0.0, 0.0" which
is the center of the limb.
refjoint: index of the joint that is used as the "center point" along
the x-axis when doing a walking animation. For example, if the joint
between a characters thigh and waist is set as refjoint, the feet of the
character will be moved directly under said joint when the character is
standing still.
steerforce: how much force is applied to the limb when the character moves (0.0 by default)
armorsector: an armored sector between two angles (in degrees). For example,
-90,90 would make the front sector of the limb armored (0.0,0.0 by default)
armor: how effective the armor is: damage is divided by this value if an attack hits the
armored sector (1.0 by default)
Sprite:
- a child element of a limb element
Attributes:
texture: file path of the texture
sourcerect: which part of the texture should be used. If either width or
height are 0, they will be set to the width or height of the texture.
(0,0,0,0 by default)
origin: what point in the sprite is considered the "middle point". "0,0"
is the upper left corner of the sprite and "1,1" the lower right
corner. ("0.5, 0.5" by default)
depth: Affects the order which sprites are drawn in. Sprites with a
depth of 1.0 will be drawn under sprites that have the depth set
to 0.9 for example. Note that setting several limbs to the same
depth value may cause them to "flicker" on top of each other, so
it's recommended that every sprite has a slightly different depth.
Attack:
- a child element of a limb element
Attributes:
type: affects the logic for moving the attacking limb. At the moment the only
types are None, PinchCW and PinchCW
PinchCW: the limb rotates clockwise when attacking (or counter-clockwise
if the character is facing left). Useful for attacks like biting
or slashing
PinchCCW: the same as PinchCW, but in the limb is rotated in the
opposite direction
Hit: the limb will "punch" the target
damage: damage done to other characters (0.0 by default)
bleedingdamage: how much the attack affects the bleeding rate (0.0 by default)
structuredamage: damage done to structures (0.0 by default)
stun: how long the target is stunned (in seconds, 0.0 by default)
range: how close the limb doing the attack has to be to the target to do damage
(0.0 by default, but should be set to a higher value or otherwise it
will only do damage if the limb is exactly at the position of the target,
so practically never)
duration: how long the attack lasts - if set to zero, it will be a "one-hit"
attack, otherwise it will be active for a while and the damage values
will be damage per second
priority: can be used for adjusting how likely the character is to use specific
attacks. For example, if a character has two attacks, first one
having the priority 2.0 and the second 1.0, the character is twice as
likely to use the first one.
Joint:
- a revolute joint connecting two limbs to each other
- a child element of the ragdoll element
Attributes:
limb1, limb2: thes id of the limbs that should be connected
limb1anchor, limb2anchor: the points where the joint is attached to on
the limbs (0.0, 0.0 being the center)
lowerlimit, upperlimit: how much the joint can turn. If both are set to 0.0,
the joint can rotate freely.
----------------------------------
Editing items:
----------------------------------
(A more extensive tutorial coming up in the future)
Items are also configured in XML files. An item consist of several ''components''
which determine the functionality of the item. See the existing item files for
examples on the components.
TO BE CONTINUED

View File

@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.3.0.3")]
[assembly: AssemblyFileVersion("0.3.0.3")]
[assembly: AssemblyVersion("0.3.0.5")]
[assembly: AssemblyFileVersion("0.3.0.5")]

View File

@@ -10,7 +10,7 @@ namespace Barotrauma
{
public enum ContentType
{
None, Jobs, Item, Character, Structure, Executable
None, Jobs, Item, Character, Structure, Executable, RandomEvents
}
public class ContentPackage

View File

@@ -452,17 +452,23 @@ namespace Barotrauma
DebugConsole.NewMessage("Deleted filelist", Color.Green);
}
if (System.IO.File.Exists("Data/SavedSubs/TutorialSub.sub"))
if (System.IO.File.Exists("Submarines/TutorialSub.sub"))
{
System.IO.File.Delete("Data/SavedSubs/TutorialSub.sub");
System.IO.File.Delete("Submarines/TutorialSub.sub");
DebugConsole.NewMessage("Deleted TutorialSub from SavedSubs", Color.Green);
DebugConsole.NewMessage("Deleted TutorialSub from the submarine folder", Color.Green);
}
if (System.IO.File.Exists("crashreport.txt"))
{
DebugConsole.NewMessage("Deleted crashreport.txt", Color.Green);
}
if (!System.IO.File.Exists("Content/Map/TutorialSub.sub"))
{
DebugConsole.ThrowError("TutorialSub.sub not found!");
}
break;
default:
NewMessage("Command not found", Color.Red);

View File

@@ -8,8 +8,6 @@ namespace Barotrauma
{
class ScriptedEvent
{
private static string configFile = "Content/randomevents.xml";
//const int MaxPreviousEvents = 6;
//const float PreviouslyUsedWeight = 10.0f;
@@ -94,6 +92,16 @@ namespace Barotrauma
public static ScriptedEvent LoadRandom(Random rand)
{
var configFiles = GameMain.Config.SelectedContentPackage.GetFilesOfType(ContentType.RandomEvents);
if (!configFiles.Any())
{
DebugConsole.ThrowError("No config files for random events found in the selected content package");
return null;
}
string configFile = configFiles[0];
XDocument doc = ToolBox.TryLoadXml(configFile);
if (doc == null) return null;

View File

@@ -242,7 +242,7 @@ namespace Barotrauma.Items.Components
if (particle != null) particle.Size *= Rand.Range(0.5f, 1.0f);
}
new FireSource(item.Position);
new FireSource(item.WorldPosition);
}
if (temperature > meltDownTemp)

View File

@@ -99,8 +99,8 @@ namespace Barotrauma.Items.Components
{
IsActive = true;
var tickBox = new GUITickBox(new Rectangle(0,25,20,20), "Autopilot", Alignment.TopLeft, GuiFrame);
tickBox.OnSelected = (GUITickBox box) =>
autopilotTickBox = new GUITickBox(new Rectangle(0,25,20,20), "Autopilot", Alignment.TopLeft, GuiFrame);
autopilotTickBox.OnSelected = (GUITickBox box) =>
{
AutoPilot = box.Selected;
item.NewComponentEvent(this, true, true);

View File

@@ -10,6 +10,7 @@ namespace Barotrauma.Items.Components
class Connection
{
private static Texture2D panelTexture;
private static Sprite connector;
private static Sprite wireCorner, wireVertical, wireHorizontal;
@@ -61,10 +62,14 @@ namespace Barotrauma.Items.Components
if (connector == null)
{
connector = new Sprite("Content/Items/connector.png", new Vector2(0.5f, 0.5f));
wireCorner = new Sprite("Content/Items/wireCorner.png", new Vector2(0.5f, 0.1f));
wireVertical = new Sprite("Content/Items/wireVertical.png", new Vector2(0.5f, 0.5f));
wireHorizontal = new Sprite("Content/Items/wireHorizontal.png", new Vector2(0.5f, 0.5f));
panelTexture = Sprite.LoadTexture("Content/Items/connectionpanel.png");
connector = new Sprite(panelTexture, new Rectangle(448, 80, 64, 64), Vector2.Zero, 0.0f);
connector.Origin = new Vector2(32.0f, 32.0f);
wireCorner = new Sprite(panelTexture, new Rectangle(448, 0, 64, 64), Vector2.Zero, 0.0f);
wireCorner.Origin = new Vector2(32.0f, 32.0f);
wireVertical = new Sprite(panelTexture, new Rectangle(480, 64, 16, 16), new Vector2(-8.0f, -8.0f), 0.0f);
wireHorizontal = new Sprite(panelTexture, new Rectangle(496, 64, 16, 16), new Vector2(-8.0f, -8.0f), 0.0f);
}
this.item = item;
@@ -186,13 +191,15 @@ namespace Barotrauma.Items.Components
public static void DrawConnections(SpriteBatch spriteBatch, ConnectionPanel panel, Character character)
{
int width = 400, height = 200;
int x = GameMain.GraphicsWidth/2 - width/2, y = GameMain.GraphicsHeight - height;
int x = GameMain.GraphicsWidth / 2 - width / 2, y = GameMain.GraphicsHeight - height;
Rectangle panelRect = new Rectangle(x, y, width, height);
GUI.DrawRectangle(spriteBatch, panelRect, Color.Black, true);
spriteBatch.Draw(panelTexture, panelRect, new Rectangle(0, 512 - height, width, height), Color.White);
//GUI.DrawRectangle(spriteBatch, panelRect, Color.Black, true);
bool mouseInRect = panelRect.Contains(PlayerInput.MousePosition);
@@ -209,8 +216,8 @@ namespace Barotrauma.Items.Components
if (wireComponent != null) equippedWire = wireComponent;
}
Vector2 rightPos = new Vector2(x + width - 110, y + 20);
Vector2 leftPos = new Vector2(x + 110, y + 20);
Vector2 rightPos = new Vector2(x + width - 110, y + 50);
Vector2 leftPos = new Vector2(x + 110, y + 50);
float wireInterval = 10.0f;
@@ -291,6 +298,9 @@ namespace Barotrauma.Items.Components
draggingConnected = null;
}
}
spriteBatch.Draw(panelTexture, panelRect, new Rectangle(0, 0, width, height), Color.White);
}
private void Draw(SpriteBatch spriteBatch, Item item, Vector2 position, Vector2 labelPos, Vector2 wirePosition, bool mouseIn, bool wireEquipped)
@@ -299,7 +309,7 @@ namespace Barotrauma.Items.Components
spriteBatch.DrawString(GUI.Font, Name, new Vector2(labelPos.X, labelPos.Y-10), Color.White);
GUI.DrawRectangle(spriteBatch, new Rectangle((int)position.X-10, (int)position.Y-10, 20, 20), Color.White);
spriteBatch.Draw(panelTexture, position - new Vector2(16.0f, 16.0f), new Rectangle(64, 256, 32, 32), Color.White);
for (int i = 0; i<MaxLinked; i++)
{
@@ -346,8 +356,13 @@ namespace Barotrauma.Items.Components
// Wires[index] = null;
//}
}
}
}
if (Wires.Any(w => w != null && w.Item != draggingConnected))
{
spriteBatch.Draw(panelTexture, position - new Vector2(16.0f, 16.0f), new Rectangle(32, 256, 32, 32), Color.White);
}
}
private static void DrawWire(SpriteBatch spriteBatch, Item wireItem, Item item, Vector2 end, Vector2 start, bool mouseIn, bool wireEquipped)
@@ -373,7 +388,9 @@ namespace Barotrauma.Items.Components
new Vector2(end.X - wireVertical.size.X / 2, end.Y + connLength),
new Vector2(wireVertical.size.X, (float)Math.Abs(end.Y - start.Y)), wireItem.Color * alpha);
textX = (int)end.X;
connector.Draw(spriteBatch, end, Color.White*alpha);
connector.Draw(spriteBatch, end, Color.White*alpha);
//spriteBatch.Draw(panelTexture, end, new Rectangle(32, 256, 32, 32), Color.White);
}
else
{
@@ -387,7 +404,7 @@ namespace Barotrauma.Items.Components
float dir = (end.X > start.X) ? -1.0f : 1.0f;
wireCorner.Draw(spriteBatch,
new Vector2(start.X, end.Y-1), wireItem.Color * alpha, 0.0f, 1.0f,
new Vector2(start.X, end.Y+24), wireItem.Color * alpha, 0.0f, 1.0f,
(end.X > start.X) ? SpriteEffects.None : SpriteEffects.FlipHorizontally);
float wireStartX = start.X - wireCorner.size.X / 2 * dir;
@@ -400,7 +417,7 @@ namespace Barotrauma.Items.Components
rect = new Rectangle((int)pos.X, (int)pos.Y, (int)size.X, (int)size.Y);
if (!wireEquipped && rect.Contains(PlayerInput.MousePosition)) mouseOn = true;
connector.Draw(spriteBatch, end, Color.White*alpha, -MathHelper.PiOver2 * dir);
connector.Draw(spriteBatch, end, Color.White*alpha, -MathHelper.PiOver2*dir);
}
if (draggingConnected == null && !wireEquipped)

View File

@@ -17,10 +17,10 @@ namespace Barotrauma
this.limits = limits;
this.cellSize = cellSize;
entities = new List<MapEntity>[(int)Math.Ceiling(limits.Width / cellSize),(int)Math.Ceiling(limits.Height / cellSize)];
for (int x = 0; x<entities.GetLength(0); x++)
entities = new List<MapEntity>[(int)Math.Ceiling(limits.Width / cellSize), (int)Math.Ceiling(limits.Height / cellSize)];
for (int x = 0; x < entities.GetLength(0); x++)
{
for (int y=0; y<entities.GetLength(1); y++)
for (int y = 0; y < entities.GetLength(1); y++)
{
entities[x, y] = new List<MapEntity>();
}
@@ -32,29 +32,29 @@ namespace Barotrauma
Rectangle rect = entity.Rect;
//if (Submarine.Loaded != null) rect.Offset(-Submarine.HiddenSubPosition);
Rectangle indices = GetIndices(rect);
if (indices.X<0 || indices.Width>=entities.GetLength(0) ||
indices.Y<0 || indices.Height>=entities.GetLength(1))
if (indices.X < 0 || indices.Width >= entities.GetLength(0) ||
indices.Y < 0 || indices.Height >= entities.GetLength(1))
{
DebugConsole.ThrowError("Error in EntityGrid.InsertEntity: "+entity+" is outside the grid");
DebugConsole.ThrowError("Error in EntityGrid.InsertEntity: " + entity + " is outside the grid");
return;
}
for (int x=indices.X; x<=indices.Width; x++)
for (int x = indices.X; x <= indices.Width; x++)
{
for (int y = indices.Y; y<=indices.Height; y++)
for (int y = indices.Y; y <= indices.Height; y++)
{
entities[x, y].Add(entity);
}
}
}
public void RemoveEntity(MapEntity entity)
{
for (int x = 0; x < entities.GetLength(0); x++)
{
for (int y = 0; y < entities.GetLength(1); y++)
{
if (entities[x,y].Contains(entity)) entities[x, y].Remove(entity);
if (entities[x, y].Contains(entity)) entities[x, y].Remove(entity);
}
}
}
@@ -76,14 +76,13 @@ namespace Barotrauma
if (Submarine.Loaded != null) position -= Submarine.HiddenSubPosition;
if (position.X < limits.X || position.Y > limits.Y ||
position.X > limits.Right || position.Y < limits.Y - limits.Height)
Point indices = GetIndices(position);
if (indices.X < 0 || indices.Y < 0 || indices.X >= entities.GetLength(0) || indices.Y >= entities.GetLength(1))
{
return new List<MapEntity>();
}
Point indices = GetIndices(position);
return entities[indices.X, indices.Y];
}
@@ -91,10 +90,10 @@ namespace Barotrauma
{
Rectangle indices = Rectangle.Empty;
indices.X = (int)Math.Floor((rect.X - limits.X) / cellSize);
indices.Y = (int)Math.Floor((limits.Y - rect.Y)/cellSize);
indices.Y = (int)Math.Floor((limits.Y - rect.Y) / cellSize);
indices.Width = (int)Math.Floor((rect.Right - limits.X) / cellSize);
indices.Height = (int)Math.Floor((limits.Y - (rect.Y-rect.Height)) / cellSize);
indices.Height = (int)Math.Floor((limits.Y - (rect.Y - rect.Height)) / cellSize);
return indices;
}
@@ -103,7 +102,7 @@ namespace Barotrauma
{
return new Point(
(int)Math.Floor((position.X - limits.X) / cellSize),
(int)Math.Floor((limits.Y - position.Y) / cellSize));
(int)Math.Floor((limits.Y - position.Y) / cellSize));
}
}
}

View File

@@ -20,7 +20,7 @@ namespace Barotrauma
class Submarine : Entity
{
public static string SavePath = "Data" + System.IO.Path.DirectorySeparatorChar + "SavedSubs";
public static string SavePath = "Submarines";
//position of the "actual submarine" which is rendered wherever the SubmarineBody is
//should be in an unreachable place

View File

@@ -38,7 +38,7 @@ namespace Barotrauma
//menuTabs[(int)Tabs.Main].Padding = GUI.style.smallPadding;
int y = 170;
int y = (int)(GameMain.GraphicsHeight * 0.3f);
Rectangle panelRect = new Rectangle(
290, y,
@@ -81,6 +81,8 @@ namespace Barotrauma
button.Color = button.Color * 0.8f;
button.OnClicked = QuitClicked;
panelRect.Y += 10;
//----------------------------------------------------------------------
menuTabs[(int)Tab.NewGame] = new GUIFrame(panelRect, GUI.Style);

View File

@@ -464,8 +464,9 @@ namespace Barotrauma
GameMain.Server.CharacterInfo = null;
GameMain.Server.Character = null;
var playYourself = new GUITickBox(new Rectangle(0, -20, 20, 20), "Play yourself", Alignment.TopLeft, myPlayerFrame);
var playYourself = new GUITickBox(new Rectangle(0, 0, 20, 20), "Play yourself", Alignment.TopLeft, myPlayerFrame);
playYourself.OnSelected = TogglePlayYourself;
playYourself.UserData = "playyourself";
}
}
return false;

View File

@@ -10,7 +10,7 @@ namespace Barotrauma
{
public static class UpdaterUtil
{
public const string Version = "1.0";
public const string Version = "1.1";
public static void SaveFileList(string filePath)
{
@@ -174,7 +174,7 @@ namespace Barotrauma
string relativePath = GetRelativePath(file, currentDir);
string dirRoot = relativePath.Split(Path.DirectorySeparatorChar).First();
if (dirRoot != "Content" && dirRoot != "") continue;
if (dirRoot != "Content") continue;
if (filesToKeep.Contains(relativePath)) continue;

View File

@@ -1,3 +1,11 @@
---------------------------------------------------------------------------------------------------------
v0.3.0.5
---------------------------------------------------------------------------------------------------------
- fixed autopilot crashing the game
- fixed reactor not catching fire when going above the configured ''fire temperature''
- fixed a duplicate "Play yourself" checkbox appearing in the lobby screen after rounds
---------------------------------------------------------------------------------------------------------
v0.3.0.4
---------------------------------------------------------------------------------------------------------
@@ -11,6 +19,8 @@ v0.3.0.4
name of the submarine
- fixed new structures not lining up with existing ones if switching to editor while a round is running
- fixed a bug in shadow rendering which caused memory leaks
- the autoupdater only checks the Content folder when deleting files that don't belong to the latest version
(i.e. the autoupdater won't delete your mods as long as they aren't saved in the Content folder)
- molochs and endworms are immune to bleeding!
---------------------------------------------------------------------------------------------------------

Binary file not shown.