Merge branch 'master' into ed-15-11-2024-magic-signs
This commit is contained in:
@@ -170,7 +170,7 @@ namespace Content.Client.Construction.UI
|
||||
if (recipe.Hide)
|
||||
continue;
|
||||
|
||||
if (!recipe.CrystallPunkAllowed) //CrystallPunk clearing recipes
|
||||
if (!recipe.CrystallPunkAllowed) //CrystallEdge clearing recipes
|
||||
continue;
|
||||
|
||||
if (_playerManager.LocalSession == null
|
||||
|
||||
@@ -168,8 +168,8 @@ public sealed partial class GuidebookWindow : FancyWindow, ILinkClickHandler
|
||||
var parent = forcedRoot == null ? null : AddEntry(forcedRoot.Value, null, addedEntries);
|
||||
foreach (var entry in GetSortedEntries(roots))
|
||||
{
|
||||
if (!entry.CrystallPunkAllowed) continue; //CrystallPunk guidebook filter
|
||||
if (entry.LocFilter is not null && entry.LocFilter != ContentLocalizationManager.Culture) continue; //CrystallPunk guidebook filter
|
||||
if (!entry.CrystallPunkAllowed) continue; //CrystallEdge guidebook filter
|
||||
if (entry.LocFilter is not null && entry.LocFilter != ContentLocalizationManager.Culture) continue; //CrystallEdge guidebook filter
|
||||
|
||||
AddEntry(entry.Id, parent, addedEntries);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
[Dependency] private readonly RgbLightControllerSystem _rgbLightControllerSystem = default!;
|
||||
[Dependency] private readonly SharedPointLightSystem _pointLightSystem = default!;
|
||||
[Dependency] private readonly TagSystem _tags = default!;
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!; //CrystallPunk guidebook filter
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!; //CrystallEdge guidebook filter
|
||||
|
||||
public event Action<List<ProtoId<GuideEntryPrototype>>,
|
||||
List<ProtoId<GuideEntryPrototype>>?,
|
||||
@@ -47,7 +47,7 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
/// <inheritdoc/>
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<GuideHelpComponent, MapInitEvent>(OnCrystallPunkMapInit); //CrystallPunk guidebook filter
|
||||
SubscribeLocalEvent<GuideHelpComponent, MapInitEvent>(OnCrystallEdgeMapInit); //CrystallEdge guidebook filter
|
||||
SubscribeLocalEvent<GuideHelpComponent, GetVerbsEvent<ExamineVerb>>(OnGetVerbs);
|
||||
SubscribeLocalEvent<GuideHelpComponent, ActivateInWorldEvent>(OnInteract);
|
||||
|
||||
@@ -57,12 +57,12 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
OnGuidebookControlsTestGetAlternateVerbs);
|
||||
}
|
||||
|
||||
//CrystallPunk guidebook filter
|
||||
private void OnCrystallPunkMapInit(Entity<GuideHelpComponent> ent, ref MapInitEvent args)
|
||||
//CrystallEdge guidebook filter
|
||||
private void OnCrystallEdgeMapInit(Entity<GuideHelpComponent> ent, ref MapInitEvent args)
|
||||
{
|
||||
foreach (var guide in ent.Comp.Guides)
|
||||
{
|
||||
var guideProto = _proto.Index<GuideEntryPrototype>(guide);
|
||||
var guideProto = _proto.Index(guide);
|
||||
if (!guideProto.CrystallPunkAllowed) //REMOVE unnecessary guidebook
|
||||
{
|
||||
RemComp<GuideHelpComponent>(ent);
|
||||
@@ -70,7 +70,7 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
}
|
||||
}
|
||||
}
|
||||
//CrystallPunk guidebook filter end
|
||||
//CrystallEdge guidebook filter end
|
||||
|
||||
/// <summary>
|
||||
/// Gets a user entity to use for verbs and examinations. If the player has no attached entity, this will use a
|
||||
|
||||
@@ -20,7 +20,7 @@ public enum WeaponArcAnimation : byte
|
||||
None,
|
||||
Thrust,
|
||||
Slash,
|
||||
//CrystallPunk Melee upgrade
|
||||
//CrystallEdge Melee upgrade
|
||||
CPSlash,
|
||||
CPThrust
|
||||
}
|
||||
|
||||
@@ -43,8 +43,8 @@ public sealed partial class MeleeWeaponSystem
|
||||
return;
|
||||
}
|
||||
|
||||
var length = 1f; //CrystallPunk Melee upgrade
|
||||
var offset = -1f; //CrystallPunk Melee upgrade
|
||||
var length = 1f; //CrystallEdgeMelee upgrade
|
||||
var offset = -1f; //CrystallEdge Melee upgrade
|
||||
|
||||
var spriteRotation = Angle.Zero;
|
||||
if (arcComponent.Animation != WeaponArcAnimation.None
|
||||
@@ -59,8 +59,8 @@ public sealed partial class MeleeWeaponSystem
|
||||
if (meleeWeaponComponent.SwingLeft)
|
||||
angle *= -1;
|
||||
|
||||
length = meleeWeaponComponent.CPAnimationLength; //CrystallPunk Melee upgrade
|
||||
offset = meleeWeaponComponent.CPAnimationOffset; //CrystallPunk Melee upgrade
|
||||
length = meleeWeaponComponent.CPAnimationLength; //CrystallEdge Melee upgrade
|
||||
offset = meleeWeaponComponent.CPAnimationOffset; //CrystallEdge Melee upgrade
|
||||
}
|
||||
sprite.Rotation = localPos.ToWorldAngle();
|
||||
var distance = Math.Clamp(localPos.Length() / 2f, 0.2f, 1f);
|
||||
@@ -92,7 +92,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
if (arcComponent.Fadeout)
|
||||
_animation.Play(animationUid, GetFadeAnimation(sprite, 0f, 0.15f), FadeAnimationKey);
|
||||
break;
|
||||
//CrystallPunk MeleeUpgrade
|
||||
//CrystallEdge MeleeUpgrade
|
||||
case WeaponArcAnimation.CPSlash:
|
||||
track = EnsureComp<TrackUserComponent>(animationUid);
|
||||
track.User = user;
|
||||
@@ -107,7 +107,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
if (arcComponent.Fadeout)
|
||||
_animation.Play(animationUid, GetFadeAnimation(sprite, 0f, 0.15f), FadeAnimationKey);
|
||||
break;
|
||||
//CrystallPunk MeleeUpgrade end
|
||||
//CrystallEdge MeleeUpgrade end
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
/// </summary>
|
||||
private Animation GetLungeAnimation(Vector2 direction)
|
||||
{
|
||||
const float length = 0.2f; // 0.1 original, CrystallPunk update
|
||||
const float length = 0.2f; // 0.1 original, CrystallEdge update
|
||||
|
||||
return new Animation
|
||||
{
|
||||
@@ -221,9 +221,9 @@ public sealed partial class MeleeWeaponSystem
|
||||
InterpolationMode = AnimationInterpolationMode.Linear,
|
||||
KeyFrames =
|
||||
{
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0f), //CrystallPunk MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(direction.Normalized() * 0.15f, length*0.4f), //CrystallPunk MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, length*0.6f) //CrystallPunk MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0f), //CrystallEdge MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(direction.Normalized() * 0.15f, length*0.4f), //CrystallEdge MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, length*0.6f) //CrystallEdge MeleeUpgrade
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -253,7 +253,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
}
|
||||
}
|
||||
|
||||
//CrystallPunk MeleeUpgrade start
|
||||
//CrystallEdge MeleeUpgrade start
|
||||
private Animation CPGetSlashAnimation(SpriteComponent sprite, Angle arc, Angle spriteRotation, float length, float offset = -1f)
|
||||
{
|
||||
var startRotation = sprite.Rotation + (arc * 0.5f);
|
||||
@@ -324,6 +324,6 @@ public sealed partial class MeleeWeaponSystem
|
||||
};
|
||||
}
|
||||
|
||||
//CrystallPunk MeleeUpgrade end
|
||||
//CrystallEdge MeleeUpgrade end
|
||||
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace Content.IntegrationTests.Tests.Access
|
||||
[TestOf(typeof(AccessReaderComponent))]
|
||||
public sealed class AccessReaderTest
|
||||
{
|
||||
/*
|
||||
[Test]
|
||||
public async Task TestProtoTags()
|
||||
{
|
||||
@@ -123,6 +124,6 @@ namespace Content.IntegrationTests.Tests.Access
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AtmosAlarmThreshold))]
|
||||
public sealed class AlarmThresholdTest
|
||||
{
|
||||
{/*
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: alarmThreshold
|
||||
@@ -135,6 +135,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
}
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestFixture]
|
||||
[TestOf(typeof(Atmospherics))]
|
||||
public sealed class ConstantsTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task TotalGasesTest()
|
||||
{
|
||||
@@ -27,6 +27,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestFixture]
|
||||
[TestOf(typeof(GasMixture))]
|
||||
public sealed class GasMixtureTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task TestMerge()
|
||||
{
|
||||
@@ -105,6 +105,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Atmos;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class GridJoinTest
|
||||
{
|
||||
{/*
|
||||
private const string CanisterProtoId = "AirCanister";
|
||||
|
||||
[Test]
|
||||
@@ -49,5 +49,5 @@ public sealed class GridJoinTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class CargoTest
|
||||
{
|
||||
{/*
|
||||
private static readonly HashSet<ProtoId<CargoProductPrototype>> Ignored =
|
||||
[
|
||||
// This is ignored because it is explicitly intended to be able to sell for more than it costs.
|
||||
@@ -265,5 +265,5 @@ public sealed class CargoTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
[TestOf(typeof(DisposalEntryComponent))]
|
||||
[TestOf(typeof(DisposalUnitComponent))]
|
||||
public sealed class DisposalUnitTest
|
||||
{
|
||||
{/*
|
||||
[Reflect(false)]
|
||||
private sealed class DisposalUnitTestSystem : EntitySystem
|
||||
{
|
||||
@@ -242,6 +242,6 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ using Content.Shared.Wires;
|
||||
namespace Content.IntegrationTests.Tests.EncryptionKeys;
|
||||
|
||||
public sealed class RemoveEncryptionKeys : InteractionTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task HeadsetKeys()
|
||||
{
|
||||
@@ -108,5 +108,5 @@ public sealed class RemoveEncryptionKeys : InteractionTest
|
||||
AssertPrototype("TelecomServerFilled");
|
||||
await InteractUsing(Pry);
|
||||
AssertPrototype("MachineFrame");
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Internals;
|
||||
[TestFixture]
|
||||
[TestOf(typeof(InternalsSystem))]
|
||||
public sealed class AutoInternalsTests
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task TestInternalsAutoActivateInSpaceForStationSpawn()
|
||||
{
|
||||
@@ -81,5 +81,5 @@ public sealed class AutoInternalsTests
|
||||
components:
|
||||
- type: Loadout
|
||||
prototypes: [InternalsDummyGear]
|
||||
";
|
||||
";*/
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
public sealed class MachineBoardTest
|
||||
{
|
||||
{/*
|
||||
/// <summary>
|
||||
/// A list of machine boards that can be ignored by this test.
|
||||
/// </summary>
|
||||
@@ -138,5 +138,5 @@ public sealed class MachineBoardTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.Payload;
|
||||
|
||||
public sealed class ModularGrenadeTests : InteractionTest
|
||||
{
|
||||
{/*
|
||||
public const string Trigger = "TimerTrigger";
|
||||
public const string Payload = "ExplosivePayload";
|
||||
|
||||
@@ -70,5 +70,5 @@ public sealed class ModularGrenadeTests : InteractionTest
|
||||
// Grenade has exploded.
|
||||
await RunTicks(30);
|
||||
AssertDeleted();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -44,15 +44,15 @@ namespace Content.IntegrationTests.Tests
|
||||
};
|
||||
|
||||
private static readonly string[] GameMaps =
|
||||
{//CrystallPunk Map replacement
|
||||
{//CrystallEdge Map replacement
|
||||
"Dev",
|
||||
"CentComm",
|
||||
"MeteorArena",
|
||||
|
||||
//CrystallPunk maps
|
||||
//CrystallEdge maps
|
||||
"Village",
|
||||
"Island",
|
||||
//CrystallPunk Map replacement end
|
||||
//CrystallEdge Map replacement end
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Content.IntegrationTests.Tests.Power
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class PowerTest
|
||||
{
|
||||
{/*
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: entity
|
||||
@@ -1333,7 +1333,7 @@ namespace Content.IntegrationTests.Tests.Power
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class ResearchTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task DisciplineValidTierPrerequesitesTest()
|
||||
{
|
||||
@@ -117,5 +117,5 @@ public sealed class ResearchTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[TestOf(typeof(VendingMachineRestockComponent))]
|
||||
[TestOf(typeof(VendingMachineSystem))]
|
||||
public sealed class VendingMachineRestockTest : EntitySystem
|
||||
{
|
||||
{/*
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: entity
|
||||
@@ -369,7 +369,7 @@ namespace Content.IntegrationTests.Tests
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace Content.Server.Atmos.Components
|
||||
public ProtoId<AlertPrototype> FireAlert = "Fire";
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk fireplace fuel
|
||||
/// CrystallEdge fireplace fuel
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float CP14FireplaceFuel = 10f;
|
||||
|
||||
@@ -317,10 +317,10 @@ namespace Content.Server.Atmos.EntitySystems
|
||||
_ignitionSourceSystem.SetIgnited(uid, false);
|
||||
|
||||
|
||||
//CrystallPunk bonfire moment
|
||||
//CrystallEdge bonfire moment
|
||||
var ev = new OnFireChangedEvent(flammable.OnFire);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
//CrystallPunk bonfire moment end
|
||||
//CrystallEdge bonfire moment end
|
||||
|
||||
UpdateAppearance(uid, flammable);
|
||||
}
|
||||
@@ -344,10 +344,10 @@ namespace Content.Server.Atmos.EntitySystems
|
||||
_adminLogger.Add(LogType.Flammable, $"{ToPrettyString(uid):target} set on fire by {ToPrettyString(ignitionSource):actor}");
|
||||
flammable.OnFire = true;
|
||||
|
||||
//CrystallPunk fireplace moment
|
||||
//CrystallEdge fireplace moment
|
||||
var ev = new OnFireChangedEvent(flammable.OnFire);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
//CrystallPunk fireplace moment end
|
||||
//CrystallEdge fireplace moment end
|
||||
}
|
||||
|
||||
UpdateAppearance(uid, flammable);
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<AmbientOnPoweredComponent, PowerChangedEvent>(HandlePowerChange);
|
||||
SubscribeLocalEvent<AmbientOnPoweredComponent, PowerNetBatterySupplyEvent>(HandlePowerSupply);
|
||||
SubscribeLocalEvent<CP14FlammableAmbientSoundComponent, OnFireChangedEvent>(OnFireChanged); //CrystallPunk bonfire moment
|
||||
SubscribeLocalEvent<CP14FlammableAmbientSoundComponent, OnFireChangedEvent>(OnFireChanged); //CrystallEdge bonfire moment
|
||||
}
|
||||
|
||||
private void HandlePowerSupply(EntityUid uid, AmbientOnPoweredComponent component, ref PowerNetBatterySupplyEvent args)
|
||||
@@ -27,10 +27,10 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
||||
SetAmbience(uid, args.Powered);
|
||||
}
|
||||
|
||||
//CrystallPunk bonfire moment
|
||||
//CrystallEdge bonfire moment
|
||||
private void OnFireChanged(Entity<CP14FlammableAmbientSoundComponent> ent, ref OnFireChangedEvent args)
|
||||
{
|
||||
SetAmbience(ent, args.OnFire);
|
||||
}
|
||||
//CrystallPunk bonfire moment end
|
||||
//CrystallEdge bonfire moment end
|
||||
}
|
||||
|
||||
@@ -37,14 +37,14 @@ namespace Content.Server.Damage.Systems
|
||||
{
|
||||
if (!TerminatingOrDeleted(args.Target))
|
||||
{
|
||||
//CrystallPunk Melee upgrade
|
||||
//CrystallEdge Melee upgrade
|
||||
var damage = component.Damage;
|
||||
|
||||
if (TryComp<CP14SharpenedComponent>(uid, out var sharp))
|
||||
damage *= sharp.Sharpness;
|
||||
|
||||
var dmg = _damageable.TryChangeDamage(args.Target, damage, component.IgnoreResistances, origin: args.Component.Thrower);
|
||||
//CrystallPunk Melee upgrade end
|
||||
//CrystallEdge Melee upgrade end
|
||||
|
||||
// Log damage only for mobs. Useful for when people throw spears at each other, but also avoids log-spam when explosions send glass shards flying.
|
||||
if (dmg != null && HasComp<MobStateComponent>(args.Target))
|
||||
|
||||
@@ -240,7 +240,7 @@ namespace Content.Server.GameTicking
|
||||
_chatSystem.DispatchStationAnnouncement(station,
|
||||
Loc.GetString("latejoin-arrival-announcement-special",
|
||||
("character", MetaData(mob).EntityName),
|
||||
("gender", character.Gender), // CrystallPunk-LastnameGender
|
||||
("gender", character.Gender), // CrystallEdge-LastnameGender
|
||||
("entity", mob),
|
||||
("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName))),
|
||||
Loc.GetString("latejoin-arrival-sender"),
|
||||
@@ -252,7 +252,7 @@ namespace Content.Server.GameTicking
|
||||
_chatSystem.DispatchStationAnnouncement(station,
|
||||
Loc.GetString("latejoin-arrival-announcement",
|
||||
("character", MetaData(mob).EntityName),
|
||||
("gender", character.Gender), // CrystallPunk-LastnameGender
|
||||
("gender", character.Gender), // CrystallEdge-LastnameGender
|
||||
("entity", mob),
|
||||
("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName))),
|
||||
Loc.GetString("latejoin-arrival-sender"),
|
||||
|
||||
@@ -130,7 +130,6 @@ public sealed partial class DungeonSystem
|
||||
|
||||
var finalRoomRotation = roomTransform.Rotation();
|
||||
|
||||
/*
|
||||
if (clearExisting)
|
||||
{
|
||||
var point1 = Vector2.Transform(-room.Size / 2, roomTransform);
|
||||
@@ -156,7 +155,6 @@ public sealed partial class DungeonSystem
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
var roomCenter = (room.Offset + room.Size / 2f) * grid.TileSize;
|
||||
var tileOffset = -roomCenter + grid.TileSizeHalfVector;
|
||||
@@ -185,14 +183,14 @@ public sealed partial class DungeonSystem
|
||||
_tiles.Add((rounded, tileRef.Tile));
|
||||
|
||||
//CP14 clearExisting variant
|
||||
if (clearExisting)
|
||||
{
|
||||
var anchored = _maps.GetAnchoredEntities((gridUid, grid), rounded);
|
||||
foreach (var ent in anchored)
|
||||
{
|
||||
QueueDel(ent);
|
||||
}
|
||||
}
|
||||
//if (clearExisting)
|
||||
//{
|
||||
// var anchored = _maps.GetAnchoredEntities((gridUid, grid), rounded);
|
||||
// foreach (var ent in anchored)
|
||||
// {
|
||||
// QueueDel(ent);
|
||||
// }
|
||||
//}
|
||||
//CP14 clearExisting variant end
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public sealed class RandomSpriteSystem: SharedRandomSpriteSystem
|
||||
|
||||
component.Selected.EnsureCapacity(groups.Count);
|
||||
|
||||
Color? previousColor = component.CP14InheritBaseColor; //CrystallPunk
|
||||
Color? previousColor = component.CP14InheritBaseColor; //CrystallEdge
|
||||
|
||||
foreach (var group in groups)
|
||||
{
|
||||
|
||||
@@ -130,12 +130,12 @@ public sealed class TemperatureSystem : EntitySystem
|
||||
public void ChangeHeat(EntityUid uid, float heatAmount, bool ignoreHeatResistance = false,
|
||||
TemperatureComponent? temperature = null)
|
||||
{
|
||||
//CrystallPunk may try place on heater and entity, and solutions
|
||||
//CrystallEdge may try place on heater and entity, and solutions
|
||||
//if (!Resolve(uid, ref temperature, false))
|
||||
// return;
|
||||
if (temperature == null)
|
||||
return;
|
||||
//CrystallPunk may try place on heater and entity, and solutions END
|
||||
//CrystallEdge may try place on heater and entity, and solutions END
|
||||
|
||||
if (!ignoreHeatResistance)
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ public sealed partial class CP14DemiplaneSystem
|
||||
return msg;
|
||||
|
||||
msg.AddMarkupOrThrow(
|
||||
indexedLocation.Name is not null && _random.Prob(indexedLocation.ExamineProb)
|
||||
indexedLocation.Name is not null/* && _random.Prob(indexedLocation.ExamineProb)*/
|
||||
? Loc.GetString("cp14-demiplane-examine-title", ("location", Loc.GetString(indexedLocation.Name)))
|
||||
: Loc.GetString("cp14-demiplane-examine-title-unknown"));
|
||||
|
||||
@@ -65,8 +65,8 @@ public sealed partial class CP14DemiplaneSystem
|
||||
if (!_proto.TryIndex(modifier, out var indexedModifier))
|
||||
continue;
|
||||
|
||||
if (!_random.Prob(indexedModifier.ExamineProb))
|
||||
continue;
|
||||
//if (!_random.Prob(indexedModifier.ExamineProb)) //temp disable
|
||||
// continue;
|
||||
|
||||
if (indexedModifier.Name is null)
|
||||
continue;
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
using Robust.Shared.Audio;
|
||||
|
||||
namespace Content.Server._CP14.PersonalSignature;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class CP14PersonalSignatureComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public SoundSpecifier? SignSound;
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Server.Mind;
|
||||
using Content.Server.Paper;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Paper;
|
||||
using Content.Shared.Verbs;
|
||||
using Robust.Server.Audio;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Player;
|
||||
|
||||
namespace Content.Server._CP14.PersonalSignature;
|
||||
|
||||
public sealed class CP14PersonalSignatureSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly AudioSystem _audio = default!;
|
||||
[Dependency] private readonly MindSystem _mind = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<PaperComponent, GetVerbsEvent<AlternativeVerb>>(OnGetVerb);
|
||||
}
|
||||
|
||||
private void OnGetVerb(Entity<PaperComponent> entity, ref GetVerbsEvent<AlternativeVerb> args)
|
||||
{
|
||||
if (!_mind.TryGetMind(args.User, out _, out var mind))
|
||||
return;
|
||||
|
||||
if (mind.CharacterName is null)
|
||||
return;
|
||||
|
||||
if (!CanSign(args.Using, out var signature))
|
||||
return;
|
||||
|
||||
if (HasSign(entity, mind.CharacterName))
|
||||
return;
|
||||
|
||||
args.Verbs.Add(new AlternativeVerb
|
||||
{
|
||||
Text = Loc.GetString("cp-sign-verb"),
|
||||
Act = () =>
|
||||
{
|
||||
Sign(entity, mind.CharacterName, signature.SignSound);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private bool CanSign(EntityUid? item, [NotNullWhen(true)] out CP14PersonalSignatureComponent? personalSignature)
|
||||
{
|
||||
personalSignature = null;
|
||||
return item is not null && TryComp(item, out personalSignature);
|
||||
}
|
||||
|
||||
private bool HasSign(Entity<PaperComponent> entity, string sign)
|
||||
{
|
||||
foreach (var info in entity.Comp.StampedBy)
|
||||
{
|
||||
if (info.StampedName == sign)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void Sign(Entity<PaperComponent> target, string name, SoundSpecifier? sound)
|
||||
{
|
||||
var info = new StampDisplayInfo
|
||||
{
|
||||
StampedName = name,
|
||||
StampedColor = Color.Gray,
|
||||
};
|
||||
|
||||
if (sound is not null)
|
||||
_audio.PlayEntity(sound, Filter.Pvs(target), target, true);
|
||||
|
||||
target.Comp.StampedBy.Add(info);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* All right reserved to CrystallPunk.
|
||||
* All right reserved to CrystallEdge.
|
||||
*
|
||||
* BUT this file is sublicensed under MIT License
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* All right reserved to CrystallPunk.
|
||||
* All right reserved to CrystallEdge.
|
||||
*
|
||||
* BUT this file is sublicensed under MIT License
|
||||
*
|
||||
|
||||
@@ -206,7 +206,7 @@ namespace Content.Shared.CCVar
|
||||
/// Prototype to use for map pool.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string>
|
||||
GameMapPool = CVarDef.Create("game.map_pool", "DefaultMapPool", CVar.SERVERONLY); //CrystallPunk mapPool
|
||||
GameMapPool = CVarDef.Create("game.map_pool", "DefaultMapPool", CVar.SERVERONLY); //CrystallEdge mapPool
|
||||
|
||||
/// <summary>
|
||||
/// The depth of the queue used to calculate which map is next in rotation.
|
||||
@@ -1565,7 +1565,7 @@ namespace Content.Shared.CCVar
|
||||
CVarDef.Create("votekick.ban_duration", 180, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Whether the ghost requirement settings for votekicks should be ignored for the lobby.
|
||||
/// Whether the ghost requirement settings for votekicks should be ignored for the lobby.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> VotekickIgnoreGhostReqInLobby =
|
||||
CVarDef.Create("votekick.ignore_ghost_req_in_lobby", true, CVar.SERVERONLY);
|
||||
|
||||
@@ -78,7 +78,7 @@ public sealed partial class ClothingComponent : Component
|
||||
public TimeSpan StripDelay = TimeSpan.Zero;
|
||||
|
||||
[DataField]
|
||||
public bool BreakOnMove = true; //CrystallPunk weapon unequipping on move
|
||||
public bool BreakOnMove = true; //CrystallEdge weapon unequipping on move
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Content.Shared.Decals
|
||||
[IdDataField] public string ID { get; } = null!;
|
||||
[DataField("sprite")] public SpriteSpecifier Sprite { get; private set; } = SpriteSpecifier.Invalid;
|
||||
[DataField("tags")] public List<string> Tags = new();
|
||||
[DataField("showMenu")] public bool ShowMenu = false; //CrystallPunk decal filter
|
||||
[DataField("showMenu")] public bool ShowMenu = false; //CrystallEdge decal filter
|
||||
|
||||
/// <summary>
|
||||
/// If the decal is rotated compared to our eye should we snap it to south.
|
||||
|
||||
@@ -47,20 +47,20 @@ namespace Content.Shared.Humanoid
|
||||
switch (gender)
|
||||
{
|
||||
case Gender.Male:
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallEdge name localization
|
||||
case Gender.Female:
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallEdge name localization
|
||||
default:
|
||||
if (_random.Prob(0.5f))
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallEdge name localization
|
||||
else
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallEdge name localization
|
||||
}
|
||||
}
|
||||
|
||||
public string GetLastName(SpeciesPrototype speciesProto)
|
||||
{
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.LastNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.LastNames).Values)); //CrystallEdge name localization
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ public abstract partial class InventorySystem
|
||||
target,
|
||||
itemUid)
|
||||
{
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallPunk weapon unequipping on move
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallEdge weapon unequipping on move
|
||||
NeedHand = true,
|
||||
};
|
||||
|
||||
@@ -434,7 +434,7 @@ public abstract partial class InventorySystem
|
||||
target,
|
||||
removedItem.Value)
|
||||
{
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallPunk weapon unequipping on move
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallEdge weapon unequipping on move
|
||||
NeedHand = true,
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Content.Shared.Localizations
|
||||
[Dependency] private readonly ILocalizationManager _loc = default!;
|
||||
|
||||
// If you want to change your codebase's language, do it here.
|
||||
public const string Culture = "ru-RU"; // CrystallPunk-Localization. "ru-RU" or "en-US"
|
||||
public const string Culture = "ru-RU"; // CrystallEdge-Localization. "ru-RU" or "en-US"
|
||||
|
||||
/// <summary>
|
||||
/// Custom format strings used for parsing and displaying minutes:seconds timespans.
|
||||
|
||||
@@ -47,7 +47,7 @@ public sealed class LockSystem : EntitySystem
|
||||
SubscribeLocalEvent<LockComponent, GotEmaggedEvent>(OnEmagged);
|
||||
SubscribeLocalEvent<LockComponent, LockDoAfter>(OnDoAfterLock);
|
||||
SubscribeLocalEvent<LockComponent, UnlockDoAfter>(OnDoAfterUnlock);
|
||||
SubscribeLocalEvent<LockComponent, BeforeDoorOpenedEvent>(OnBeforeDoorOpened); //CrystallPunk Lock System Adapt
|
||||
SubscribeLocalEvent<LockComponent, BeforeDoorOpenedEvent>(OnBeforeDoorOpened); //CrystallEdge Lock System Adapt
|
||||
SubscribeLocalEvent<LockComponent, StorageInteractAttemptEvent>(OnStorageInteractAttempt);
|
||||
|
||||
SubscribeLocalEvent<LockedWiresPanelComponent, LockToggleAttemptEvent>(OnLockToggleAttempt);
|
||||
@@ -68,7 +68,7 @@ public sealed class LockSystem : EntitySystem
|
||||
if (args.Handled || !args.Complex)
|
||||
return;
|
||||
|
||||
//CrystallPunk LockSystem Adapt - we cant unlock\lock objects via direct hand interaction
|
||||
//CrystallEdge LockSystem Adapt - we cant unlock\lock objects via direct hand interaction
|
||||
|
||||
// Only attempt an unlock by default on Activate
|
||||
//if (lockComp.Locked && lockComp.UnlockOnClick)
|
||||
@@ -82,7 +82,7 @@ public sealed class LockSystem : EntitySystem
|
||||
// args.Handled = true;
|
||||
//}
|
||||
|
||||
//CrystallPunk LockSystem Adapt End
|
||||
//CrystallEdge LockSystem Adapt End
|
||||
}
|
||||
private void OnBeforeDoorOpened(EntityUid uid, LockComponent component, BeforeDoorOpenedEvent args)
|
||||
{
|
||||
@@ -275,7 +275,7 @@ public sealed class LockSystem : EntitySystem
|
||||
|
||||
private void AddToggleLockVerb(EntityUid uid, LockComponent component, GetVerbsEvent<AlternativeVerb> args)
|
||||
{
|
||||
//CrystallPunk Lock System Adapt
|
||||
//CrystallEdge Lock System Adapt
|
||||
|
||||
//if (!args.CanAccess || !args.CanInteract)
|
||||
// return;
|
||||
@@ -292,7 +292,7 @@ public sealed class LockSystem : EntitySystem
|
||||
//};
|
||||
//args.Verbs.Add(verb);
|
||||
|
||||
//CrystallPunk Lock System Adapt End
|
||||
//CrystallEdge Lock System Adapt End
|
||||
}
|
||||
|
||||
private void OnEmagged(EntityUid uid, LockComponent component, ref GotEmaggedEvent args)
|
||||
|
||||
@@ -72,7 +72,7 @@ public sealed partial class MeleeWeaponComponent : Component
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public bool ResistanceBypass = false;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Base damage for this weapon. Can be modified via heavy damage or other means.
|
||||
/// </summary>
|
||||
@@ -120,19 +120,19 @@ public sealed partial class MeleeWeaponComponent : Component
|
||||
public bool SwingLeft;
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk Melee upgrade. Allows each attack to take turns being either left or right
|
||||
/// CrystallEdge Melee upgrade. Allows each attack to take turns being either left or right
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool CPSwingBeverage = true;
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk Melee upgrade. Modifier of wide attack animation speed
|
||||
/// CrystallEdge Melee upgrade. Modifier of wide attack animation speed
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float CPAnimationLength = 0.5f;
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk Melee upgrade. how far away from the player the animation should be played.
|
||||
/// CrystallEdge Melee upgrade. how far away from the player the animation should be played.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float CPAnimationOffset = -1f;
|
||||
|
||||
@@ -398,10 +398,10 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
|
||||
var ev = new AttemptMeleeEvent();
|
||||
RaiseLocalEvent(weaponUid, ref ev);
|
||||
|
||||
//CrystallPunk melee improvment
|
||||
//CrystallEdge melee improvment
|
||||
if (weapon.CPSwingBeverage)
|
||||
weapon.SwingLeft = !weapon.SwingLeft;
|
||||
//CrystallPunk melee improvment end
|
||||
//CrystallEdge melee improvment end
|
||||
|
||||
if (ev.Cancelled)
|
||||
{
|
||||
|
||||
@@ -6,4 +6,9 @@ namespace Content.Shared._CP14.Wallmount;
|
||||
[RegisterComponent, Access(typeof(CP14WallmountSystem))]
|
||||
public sealed partial class CP14WallmountComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public int AttachAttempts = 3;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan NextAttachTime = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Shared._CP14.Wallmount;
|
||||
|
||||
@@ -10,6 +12,8 @@ public sealed class CP14WallmountSystem : EntitySystem
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||
[Dependency] private readonly TagSystem _tag = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly INetManager _net = default!;
|
||||
|
||||
public static readonly ProtoId<TagPrototype>[] WallTags = {"Wall", "Window"};
|
||||
|
||||
@@ -17,18 +21,70 @@ public sealed class CP14WallmountSystem : EntitySystem
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14WallmountComponent, MapInitEvent>(OnMapInit);
|
||||
SubscribeLocalEvent<CP14WallmountedComponent, ComponentShutdown>(OnWallmountShutdown);
|
||||
SubscribeLocalEvent<CP14WallmountedComponent, AnchorStateChangedEvent>(OnWallmountAnchorChanged);
|
||||
}
|
||||
|
||||
private void OnMapInit(Entity<CP14WallmountComponent> ent, ref MapInitEvent args)
|
||||
private void OnWallmountAnchorChanged(Entity<CP14WallmountedComponent> ent, ref AnchorStateChangedEvent args)
|
||||
{
|
||||
var grid = Transform(ent).GridUid;
|
||||
if (!args.Anchored)
|
||||
ClearWallmounts(ent);
|
||||
}
|
||||
|
||||
private void OnWallmountShutdown(Entity<CP14WallmountedComponent> ent, ref ComponentShutdown args)
|
||||
{
|
||||
ClearWallmounts(ent);
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
var query = EntityQueryEnumerator<CP14WallmountComponent>();
|
||||
while (query.MoveNext(out var uid, out var wallmount))
|
||||
{
|
||||
if (!wallmount.Initialized)
|
||||
continue;
|
||||
|
||||
if (_timing.CurTime < wallmount.NextAttachTime)
|
||||
continue;
|
||||
|
||||
if (wallmount.AttachAttempts <= 0)
|
||||
{
|
||||
if (_net.IsServer)
|
||||
QueueDel(uid);
|
||||
continue;
|
||||
}
|
||||
|
||||
wallmount.NextAttachTime = _timing.CurTime + TimeSpan.FromSeconds(0.5f);
|
||||
wallmount.AttachAttempts--;
|
||||
|
||||
if (TryAttachWallmount((uid, wallmount)))
|
||||
{
|
||||
RemComp<CP14WallmountComponent>(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearWallmounts(Entity<CP14WallmountedComponent> ent)
|
||||
{
|
||||
foreach (var attached in ent.Comp.Attached)
|
||||
{
|
||||
QueueDel(attached);
|
||||
}
|
||||
|
||||
ent.Comp.Attached.Clear();
|
||||
}
|
||||
|
||||
private bool TryAttachWallmount(Entity<CP14WallmountComponent> wallmount)
|
||||
{
|
||||
var grid = Transform(wallmount).GridUid;
|
||||
if (grid == null || !TryComp<MapGridComponent>(grid, out var gridComp))
|
||||
return;
|
||||
return false;
|
||||
|
||||
//Try found a wall in neighbour tile
|
||||
var offset = Transform(ent).LocalRotation.ToWorldVec();
|
||||
var targetPos = new EntityCoordinates(grid.Value,Transform(ent).LocalPosition - offset);
|
||||
var offset = Transform(wallmount).LocalRotation.ToWorldVec().Normalized();
|
||||
var targetPos = new EntityCoordinates(grid.Value, Transform(wallmount).LocalPosition - offset);
|
||||
var anchored = _map.GetAnchoredEntities(grid.Value, gridComp, targetPos);
|
||||
|
||||
bool hasParent = false;
|
||||
@@ -37,11 +93,15 @@ public sealed class CP14WallmountSystem : EntitySystem
|
||||
if (!_tag.HasAnyTag(entt, WallTags))
|
||||
continue;
|
||||
|
||||
_transform.SetParent(ent, entt);
|
||||
EnsureComp<CP14WallmountedComponent>(entt, out var wallmounted);
|
||||
|
||||
if (!wallmounted.Attached.Contains(wallmount))
|
||||
wallmounted.Attached.Add(wallmount);
|
||||
|
||||
hasParent = true;
|
||||
break;
|
||||
}
|
||||
if (!hasParent)
|
||||
QueueDel(ent);
|
||||
|
||||
return hasParent;
|
||||
}
|
||||
}
|
||||
|
||||
11
Content.Shared/_CP14/Wallmount/CP14WallmountedComponent.cs
Normal file
11
Content.Shared/_CP14/Wallmount/CP14WallmountedComponent.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Content.Shared._CP14.Wallmount;
|
||||
|
||||
/// <summary>
|
||||
/// Stores a list of all entities that are “attached” to this object. Destroying this object will destroy all attached entities
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(CP14WallmountSystem))]
|
||||
public sealed partial class CP14WallmountedComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public HashSet<EntityUid> Attached = new();
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
<p align="center"> <img alt="CrystallPunk" width="880" height="440" src="https://github.com/crystallpunk-14/crystall-punk-14/assets/96445749/d1d1907b-aaa4-4491-83da-342de0ac5244" /></p>
|
||||
<p align="center"> <img alt="CrystallEdge" width="880" height="440" src="https://github.com/crystallpunk-14/crystall-punk-14/assets/96445749/d1d1907b-aaa4-4491-83da-342de0ac5244" /></p>
|
||||
|
||||
## Links
|
||||
|
||||
@@ -20,6 +20,6 @@ https://github.com/crystallpunk-14/crystall-punk-14/wiki
|
||||
|
||||
The base code for the original Space Station 14 game is licensed under [MIT License](https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT)
|
||||
|
||||
All CrystallPunk14 codebase contributions [rights reserved](https://github.com/crystallpunk-14/crystall-punk-14/blob/master/LICENSE.TXT).
|
||||
All CrystallEdge codebase contributions [rights reserved](https://github.com/crystallpunk-14/crystall-punk-14/blob/master/LICENSE.TXT).
|
||||
|
||||
Visual and sound assets have their own license, described in the attribution file next to them.
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
|
||||
- files: ["arcane_winds.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "'Arcane Winds' by LINK, created for CrystallPunk14"
|
||||
source: "https://github.com/crystallpunk-14/crystall-punk-14"
|
||||
copyright: "'Arcane Winds' by LINK"
|
||||
source: "https://github.com/crystallpunk-14/crystall-punk-14"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
cp-sign-verb = Sign
|
||||
@@ -0,0 +1 @@
|
||||
cp-sign-verb = Подписать
|
||||
@@ -17,6 +17,11 @@
|
||||
- Write
|
||||
- Pen
|
||||
- CP14InkwellFittable
|
||||
- type: CP14PersonalSignature
|
||||
signSound:
|
||||
collection: PaperScribbles
|
||||
params:
|
||||
variation: 0.1
|
||||
|
||||
# TODO: Чернильницу нужно доделать. Перо должно быть видно, пока оно внутри чернильницы. Предмет должен быть через ItemSlots, чтобы перо вставлять забирать можно было кликом. Нужно добавить прикольные звуки вставляния, выставляния. И добавить механ, который будет требовать периодически макать перо в чернильницу.
|
||||
- type: entity
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
crystallPunkAllowed: true
|
||||
locFilter: "en-US"
|
||||
id: CP14_EN
|
||||
name: Welcome to CrystallPunk
|
||||
name: Welcome to CrystallEdge
|
||||
text: "/ServerInfo/_CP14/Guidebook_EN/Welcome.xml"
|
||||
children:
|
||||
- CP14_EN_Alchemy
|
||||
@@ -12,8 +12,8 @@
|
||||
crystallPunkAllowed: true
|
||||
locFilter: "ru-RU"
|
||||
id: CP14_RU
|
||||
name: Добро пожаловать в CrystallPunk
|
||||
name: Добро пожаловать в CrystallEdge
|
||||
text: "/ServerInfo/_CP14/Guidebook_RU/Welcome.xml"
|
||||
children:
|
||||
- CP14_RU_Alchemy
|
||||
- CP14_RU_Demiplanes
|
||||
- CP14_RU_Demiplanes
|
||||
|
||||
@@ -286,17 +286,28 @@
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 2
|
||||
|
||||
#- type: cp14DemiplaneModifier
|
||||
# id: Ruins
|
||||
# name: cp14-modifier-ruins
|
||||
# reward: 0.35
|
||||
# generationWeight: 2
|
||||
# layers:
|
||||
# - !type:OreDunGen
|
||||
# entity: ##CP14DemiplanRuinsRoomSpawner
|
||||
# count: 5
|
||||
# minGroupSize: 1
|
||||
# maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: Ruins
|
||||
name: cp14-modifier-ruins
|
||||
id: Loot
|
||||
reward: 0.35
|
||||
generationWeight: 2
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplanRuinsRoomSpawner
|
||||
count: 5
|
||||
entity: CP14SpawnerExpeditionLootCommon
|
||||
count: 15
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
maxGroupSize: 3
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: EnemyXeno
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
- type: Tag
|
||||
id: CP14DemiplanEnterRoom
|
||||
|
||||
- type: entity
|
||||
id: CP14DemiplanEnterRoomMarker
|
||||
categories: [ ForkFiltered ]
|
||||
parent: BaseRoomMarker
|
||||
name: Demiplan enter room marker
|
||||
components:
|
||||
- type: RoomFill
|
||||
clearExisting: true
|
||||
roomWhitelist:
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
#- type: entity
|
||||
# id: CP14DemiplanEnterRoomMarker
|
||||
# categories: [ ForkFiltered ]
|
||||
# parent: BaseRoomMarker
|
||||
# name: Demiplan enter room marker
|
||||
# components:
|
||||
# - type: RoomFill
|
||||
# clearExisting: true
|
||||
# roomWhitelist:
|
||||
# tags:
|
||||
# - CP14DemiplanEnterRoom
|
||||
|
||||
# 7x7
|
||||
- type: dungeonRoom
|
||||
@@ -48,4 +48,4 @@
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 24,0
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
- type: Tag
|
||||
id: CP14DemiplanRuins
|
||||
|
||||
- type: entity
|
||||
id: CP14DemiplanRuinsRoomSpawner
|
||||
categories: [ ForkFiltered ]
|
||||
parent: BaseRoomMarker
|
||||
name: Demiplan ruins room spawner
|
||||
components:
|
||||
- type: RoomFill
|
||||
clearExisting: true
|
||||
roomWhitelist:
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
#- type: entity
|
||||
# id: CP14DemiplanRuinsRoomSpawner
|
||||
# categories: [ ForkFiltered ]
|
||||
# parent: BaseRoomMarker
|
||||
# name: Demiplan ruins room spawner
|
||||
# components:
|
||||
# - type: RoomFill
|
||||
# clearExisting: true
|
||||
# roomWhitelist:
|
||||
# tags:
|
||||
# - CP14DemiplanRuins
|
||||
|
||||
# 7x7
|
||||
- type: dungeonRoom
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
id: DemiplaneConnections
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplanEnterRoomMarker
|
||||
entity: CP14DemiplaneEntryPointMarker
|
||||
count: 1
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
minGroupSize: 4
|
||||
maxGroupSize: 4
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplanePassway
|
||||
count: 2
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Document>
|
||||
# Welcome to the pre-alpha version of CrystallPunk!
|
||||
# Welcome to the pre-alpha version of CrystallEdge!
|
||||
|
||||
This guide is designed to help you understand how all the mechanics in the game work.
|
||||
Be prepared for a lot of text - CP14 is a very large game with a lot of deep mechanics. We hope you will find these guides interesting.
|
||||
|
||||
## What is CrystallPunk?
|
||||
CrystallPunk is an offshoot of the Space Station 14 game... Eeee, I don't think there's much to write about at this point. We'll fill that in later.
|
||||
## What is CrystallEdge?
|
||||
CrystallEdge is an fork of the Space Station 14 game... Eeee, I don't think there's much to write about at this point. We'll fill that in later.
|
||||
|
||||
## Where to start?
|
||||
No idea, good luck. (This block needs to be rewritten too)
|
||||
</Document>
|
||||
</Document>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Document>
|
||||
# Добро пожаловать в пре-альфа версию игры CrystallPunk!
|
||||
# Добро пожаловать в пре-альфа версию игры CrystallEdge!
|
||||
|
||||
Данное руководство создано, чтобы помочь вам разобраться в работе всех существующих в игре механик.
|
||||
Будьте готовы, что здесь будет очень много текста - ведь CP14 очень большая игра с большим количеством глубоких механик. Мы надеемся, что вам будет интересно читать эти руководства.
|
||||
Будьте готовы, что здесь будет очень много текста - ведь это очень большая игра с большим количеством глубоких механик. Мы надеемся, что вам будет интересно читать эти руководства.
|
||||
|
||||
## Что такое CrystallPunk?
|
||||
CrystallPunk - ответвление от игры Space Station 14... Иии, я пока считаю что тут не о чем писать. Мы заполним этот блок позже.
|
||||
## Что такое CrystallEdge?
|
||||
CrystallEdge - ответвление от игры Space Station 14... Иии, я пока считаю что тут не о чем писать. Мы заполним этот блок позже.
|
||||
|
||||
## С чего начать?
|
||||
Без понятия, удачи. (Этот блок тоже нужно переписать)
|
||||
</Document>
|
||||
</Document>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<Document>
|
||||
# Правила сервера
|
||||
|
||||
Вы находитесь на тестовом сервере CrystallPunk. Если вы попали сюда, значит вы в белом списке.
|
||||
|
||||
Этот сервер предназначен в первую очередь для приоткрытого тестирования наработок. Билд находится в крайне ранней стадии разработки, и на текущий момент не является полноценно играбельным.
|
||||
|
||||
Вы находитесь на тестовом сервере CrystallEdge. Если вы попали сюда, значит вы в белом списке.
|
||||
|
||||
Этот сервер предназначен в первую очередь для приоткрытого тестирования наработок. Билд находится в крайне ранней стадии разработки, и на текущий момент не является полноценно играбельным.
|
||||
Некоторые ключевые механики еще могут быть не реализованы, или работать не правильно.
|
||||
|
||||
|
||||
Это означает, что здесь нет требований с ролевому отыгрышу, и вы можете спокойно общаться внутри игры OOC терминами. Тем не менее, отыгрыш никогда не является чем то лишним, и если вам нравится - на здоровье.
|
||||
|
||||
|
||||
## Основные правила
|
||||
|
||||
|
||||
- Не будьте мудаками.
|
||||
- Не мешайте другим игрокам тестировать механики, если они вас об этом просят.
|
||||
- Сексуальный контент, ERP запрещены.
|
||||
- Обо всех найденных багах сообщайте в дискорд или гитхаб.
|
||||
|
||||
- Обо всех найденных багах сообщайте в дискорд или гитхаб.
|
||||
|
||||
Удачи!
|
||||
</Document>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 45 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "Created by jaraten (Discord/Github) for CrystallPunk14",
|
||||
"copyright": "Created by jaraten (Discord/Github)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "CrystallPunk14, by Pato Grone(discord)",
|
||||
"copyright": "Created by Pato Grone(discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "CrystallPunk14, by hazzloebizhe",
|
||||
"copyright": "Created by hazzloebizhe",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat, recolored by TheShuEd",
|
||||
"copyright": "Created by Prazat, recolored by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat, recolored by TheShuEd",
|
||||
"copyright": "Created by Prazat, recolored by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Jaraten",
|
||||
"copyright": "Created by Jaraten",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat, recolored by TheShuEd",
|
||||
"copyright": "Created by Prazat, recolored by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5, edited by TheShuEd",
|
||||
"copyright": "Created by KBAS5, edited by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user