public void RenderTile(ITileEntity entity, IRenderContext renderContext) { if (!entity.Tileset.IsReady) { return; } var tileset = entity.Tileset.Asset; if (!entity.AppliedTilesetSettings) { entity.Transform.LocalScale *= new Vector3(tileset.CellWidth, tileset.CellHeight, 1); entity.Width = tileset.CellWidth; entity.Height = tileset.CellHeight; entity.AppliedTilesetSettings = true; } _renderUtilities.RenderTexture( renderContext, new Vector2(entity.Transform.LocalPosition.X * tileset.CellWidth, entity.Transform.LocalPosition.Y * tileset.CellHeight), tileset.Texture, new Vector2(entity.Width, entity.Height), sourceArea: new Rectangle( entity.TX * tileset.CellWidth, entity.TY * tileset.CellHeight, tileset.CellWidth, tileset.CellHeight)); }
/// <summary> /// The initialize tile. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <param name="tilesetAssetName"> /// The tileset asset name. /// </param> public void InitializeTile(ITileEntity entity, string tilesetAssetName) { entity.Tileset = this.m_AssetManager.Get <TilesetAsset>(tilesetAssetName); entity.LocalMatrix *= Matrix.CreateScale(entity.Tileset.CellWidth, entity.Tileset.CellHeight, 1); entity.Width = entity.Tileset.CellWidth; entity.Height = entity.Tileset.CellHeight; }
/// <inheritdoc /> public override bool RemoveTileEntity(ITileEntity tileEntity) { switch (tileEntity) { case Chest chest: return(RemoveChest(chest)); case Sign sign: return(RemoveSign(sign)); default: lock (_tileEntityLock) { var point16 = new Point16(tileEntity.Position.X, tileEntity.Position.Y); if (!TileEntity.ByPosition.TryGetValue(point16, out var ttileEntity)) { return(false); } TileEntity.ByID.Remove(ttileEntity.ID); TileEntity.ByPosition.Remove(point16); } return(true); } }
public void InitializeTile(ITileEntity entity, string tilesetAssetName) { entity.Tileset = _assetManager.Get <TilesetAsset>(tilesetAssetName); entity.Transform.LocalScale *= new Vector3(entity.Tileset.CellWidth, entity.Tileset.CellHeight, 1); entity.Width = entity.Tileset.CellWidth; entity.Height = entity.Tileset.CellHeight; }
private void AddTerrariaTileEntity(ITileEntity tileEntity) { int id; var x = tileEntity.Position.X; var y = tileEntity.Position.Y; lock (_tileEntityLock) { switch (tileEntity) { case ItemFrame itemFrame: var item = itemFrame.Item; id = TEItemFrame.Place(x, y); TEItemFrame.TryPlacing(x, y, item.Type, item.Prefix, item.StackSize); break; case LogicSensor logicSensor: id = TELogicSensor.Place(x, y); var terrariaLogicSensor = (TELogicSensor)TileEntity.ByID[id]; terrariaLogicSensor.CountedData = logicSensor.Data; terrariaLogicSensor.logicCheck = (TELogicSensor.LogicCheckType)logicSensor.Type; terrariaLogicSensor.On = logicSensor.IsEnabled; break; case TrainingDummy _: id = TETrainingDummy.Place(x, y); ((TETrainingDummy)TileEntity.ByID[id]).Activate(); break; default: return; } } NetMessage.SendData(86, -1, -1, null, id, x, y); }
public void InitializeTile(ITileEntity entity, string tilesetAssetName) { entity.Tileset = _assetManager.Get <TilesetAsset>(tilesetAssetName); // TODO: Figure out how to do this with delayed assets. //entity.Transform.LocalScale *= new Vector3(entity.Tileset.CellWidth, entity.Tileset.CellHeight, 1); //entity.Width = entity.Tileset.CellWidth; //entity.Height = entity.Tileset.CellHeight; }
/// <summary> /// The initialize tile. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <param name="tilesetAssetName"> /// The tileset asset name. /// </param> public void InitializeTile(ITileEntity entity, string tilesetAssetName) { entity.Tileset = this.m_AssetManager.Get <TilesetAsset>(tilesetAssetName); entity.X *= entity.Tileset.CellWidth; entity.Y *= entity.Tileset.CellHeight; entity.Width = entity.Tileset.CellWidth; entity.Height = entity.Tileset.CellHeight; }
/// <inheritdoc /> public override bool AddTileEntity(ITileEntity tileEntity) { if (Extent.AddTileEntity(tileEntity)) { _changeSet.Add(new TileEntityAddition(tileEntity)); return(true); } return(false); }
/// <inheritdoc /> public override bool RemoveTileEntity(ITileEntity tileEntity) { if (Extent.RemoveTileEntity(tileEntity)) { _changeSet.Add(new TileEntityRemoval(tileEntity)); return(true); } return(false); }
/// <summary> /// Returns a value indicating whether the tile entity is concrete: i.e., whether the tile entity <i>can</i> /// exist in the world. /// </summary> /// <param name="tileEntity">The tile entity.</param> /// <returns> /// <see langword="true"/> if the tile entity is concrete; otherwise, <see langword="false"/>. /// </returns> /// <exception cref="ArgumentNullException"><paramref name="tileEntity"/> is <see langword="null"/>.</exception> public static bool IsConcrete(this ITileEntity tileEntity) { if (tileEntity is null) { throw new ArgumentNullException(nameof(tileEntity)); } return(tileEntity.Index >= 0); }
public LocationInfo(string id, Vector3Int location, GameObject actualObject) { BlockId = id; Location = location; ActualObject = actualObject; renderer = null; TileEntity = null; Meta = 0; }
/// <inheritdoc /> public override bool AddTileEntity(ITileEntity tileEntity) { if (!IsInBounds(tileEntity.Position)) { return(false); } _tileEntities.Add(tileEntity); return(true); }
public void RenderTile(ITileEntity entity, IRenderContext renderContext) { _renderUtilities.RenderTexture( renderContext, new Vector2(entity.Transform.LocalPosition.X * entity.Tileset.CellWidth, entity.Transform.LocalPosition.Y * entity.Tileset.CellHeight), entity.Tileset.Texture, new Vector2(entity.Width, entity.Height), sourceArea: new Rectangle( entity.TX * entity.Tileset.CellWidth, entity.TY * entity.Tileset.CellHeight, entity.Tileset.CellWidth, entity.Tileset.CellHeight)); }
/// <summary> /// The render tile. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <param name="renderContext"> /// The render context. /// </param> public void RenderTile(ITileEntity entity, IRenderContext renderContext) { this.m_RenderUtilities.RenderTexture( renderContext, new Vector2(entity.X, entity.Y), entity.Tileset.Texture, new Vector2(entity.Width, entity.Height), sourceArea: new Rectangle( entity.TX * entity.Tileset.CellWidth, entity.TY * entity.Tileset.CellHeight, entity.Tileset.CellWidth, entity.Tileset.CellHeight)); }
public void RenderTile(ITileEntity entity, IRenderContext renderContext) { if (!entity.Tileset.IsReady) { return; } var tileset = entity.Tileset.Asset; _renderUtilities.RenderTexture( renderContext, new Vector2(entity.Transform.LocalPosition.X * tileset.CellWidth, entity.Transform.LocalPosition.Y * tileset.CellHeight), tileset.Texture, new Vector2(entity.Width, entity.Height), sourceArea: new Rectangle( entity.TX * tileset.CellWidth, entity.TY * tileset.CellHeight, tileset.CellWidth, tileset.CellHeight)); }
/// <inheritdoc /> public override bool AddTileEntity(ITileEntity tileEntity) { switch (tileEntity) { case Chest chest: return(AddChest(chest)); case Sign sign: return(AddSign(sign)); default: var point16 = new Point16(tileEntity.Position.X, tileEntity.Position.Y); if (TileEntity.ByPosition.ContainsKey(point16)) { return(false); } AddTerrariaTileEntity(tileEntity); return(true); } }
public void InitializeTile(ITileEntity entity, string tilesetAssetName) { entity.Tileset = _assetManager.Get <TilesetAsset>(tilesetAssetName); }
/// <inheritdoc /> public override bool RemoveTileEntity(ITileEntity tileEntity) => _tileEntities.Remove(tileEntity);
/// <summary> /// Adds the specified tile entity. /// </summary> /// <param name="tileEntity">The tile entity to add, which must not be <c>null</c>.</param> /// <returns><c>true</c> if the operation succeeded; otherwise, <c>false</c>.</returns> /// <remarks> /// The extent is not guaranteed to perform the addition. For example, there may be too many tile entities in a /// section. /// </remarks> public abstract bool AddTileEntity([NotNull] ITileEntity tileEntity);
/// <summary> /// Removes the specified tile entity. /// </summary> /// <param name="tileEntity">The tile entity to remove, which must not be <c>null</c>.</param> /// <returns><c>true</c> if the operation succeeded; otherwise, <c>false</c>.</returns> /// <remarks> /// The extent is not guaranteed to perform the removal. /// </remarks> public abstract bool RemoveTileEntity([NotNull] ITileEntity tileEntity);
/// <inheritdoc /> public override bool RemoveTileEntity(ITileEntity tileEntity) => Extent.RemoveTileEntity(tileEntity);
/// <inheritdoc /> public override bool AddTileEntity(ITileEntity tileEntity) => Extent.AddTileEntity(tileEntity);
/// <summary> /// Initializes a new instance of the <see cref="TileEntityRemoval" /> class with the specified tile entity. /// </summary> /// <param name="tileEntity">The tile entity, which must not be <c>null</c>.</param> /// <exception cref="ArgumentNullException"><paramref name="tileEntity" /> is <c>null</c>.</exception> public TileEntityRemoval([NotNull] ITileEntity tileEntity) { TileEntity = tileEntity ?? throw new ArgumentNullException(nameof(tileEntity)); }