private void DrawHotbarItemSprites(GameTime gameTime) { var scale = new Point((int)(16 * Game.ScaleFactor * 2)); var origin = new Point((int)(Game.GraphicsDevice.Viewport.Width / 2 - Scale(HotbarBackgroundRect.Width / 2)), (int)(Game.GraphicsDevice.Viewport.Height - Scale(HotbarBackgroundRect.Height + 5))); origin.X += (int)Scale(3); origin.Y += (int)Scale(3); for (int i = 0; i < Game.Client.Inventory.Hotbar.Length; i++) { var item = Game.Client.Inventory.Hotbar[i]; if (item.Empty) { continue; } var provider = Game.ItemRepository.GetItemProvider(item.ID); if (provider.GetIconTexture((byte)item.Metadata) == null) { continue; } var position = origin + new Point((int)Scale(i * 20), 0); var rect = new Rectangle(position, scale); IconRenderer.RenderItemIcon(SpriteBatch, Items, provider, (byte)item.Metadata, rect, Color.White); // TODO: F**k, metadata was supposed to be a short } }
private void DrawHotbarBlockSprites(GameTime gameTime) { var scale = new Point((int)(16 * Game.ScaleFactor * 2)); var origin = new Point((int)(Game.GraphicsDevice.Viewport.Width / 2 - Scale(HotbarBackgroundRect.Width / 2)), (int)(Game.GraphicsDevice.Viewport.Height - Scale(HotbarBackgroundRect.Height + 5))); origin.X += (int)Scale(3); origin.Y += (int)Scale(3); for (int i = 0; i < Game.Client.Inventory.Hotbar.Length; i++) { var item = Game.Client.Inventory.Hotbar[i]; if (item.Empty) { continue; } var provider = Game.ItemRepository.GetItemProvider(item.ID) as IBlockProvider; if (provider == null || provider.GetIconTexture((byte)item.Metadata) != null) { continue; } var position = origin + new Point((int)Scale(i * 20), 0); var rect = new Rectangle(position, scale); IconRenderer.RenderBlockIcon(Game, provider, (byte)item.Metadata, rect); } }
public void TakeIcon() { if (_icon != null) { return; } if (_characterClass < 0 && _actionCtrl != null) { string charID = _actionCtrl.Data.characterId; if (charID.StartsWith("mage")) { _characterClass = 0; } else if (charID.StartsWith("warrior")) { _characterClass = 1; } else if (charID.StartsWith("monk")) { _characterClass = 2; } } if (_characterClass < 0) { return; } _icon = RenderTexture.GetTemporary(128, 128, 32, RenderTextureFormat.ARGB32); string[] cameraPaths = new string[] { "Assets/Characters/Common/IconCamera_mage.prefab", "Assets/Characters/Common/IconCamera_warrior.prefab", "Assets/Characters/Common/IconCamera_monk.prefab" }; GameObject go = InJoy.AssetBundles.AssetBundles.Load(cameraPaths[_characterClass], typeof(GameObject)) as GameObject; go = GameObject.Instantiate(go) as GameObject; go.transform.parent = transform; go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; Renderer[] renderers = gameObject.GetComponentsInChildren <Renderer>(); int[] layers = new int[renderers.Length]; for (int i = 0; i < renderers.Length; ++i) { layers[i] = renderers[i].gameObject.layer; if (renderers[i].gameObject.layer == LayerMask.NameToLayer("CHARACTER") || renderers[i].gameObject.layer == LayerMask.NameToLayer("Default")) { renderers[i].gameObject.layer = LayerMask.NameToLayer("SCRIPT"); } } IconRenderer iRenderer = go.GetComponent <IconRenderer>(); iRenderer.Render(_icon); Destroy(go); for (int i = 0; i < renderers.Length; ++i) { renderers[i].gameObject.layer = layers[i]; } }
public void renderWindow(BufferedDisplayDriver display, IconRenderer ir, FontRenderer fr) { for (int i = 0; i <= width; i++) { for (int i2 = 0; i2 <= height; i2++) { display.setPixel(i + x, i2 + y, 63); } } for (int i = 0; i <= width; i++) { display.setPixel(i + x, y, 0); display.setPixel(i + x, y + 20, 0); display.setPixel(i + x, y + height, 0); } for (int i = 0; i <= height; i++) { display.setPixel(x, y + i, 0); display.setPixel(x + width, y + i, 0); } ir.renderIcon(x + width - 20, y, 'X', 2); ir.renderIcon(x + width - 40, y, 'M', 2); ir.renderIcon(x + width - 60, y, '_', 2); fr.renderString(x + 10, y + 12, "WINDOW"); }
/// <summary> /// Creates new textures, assigns them to new sprites used by a new /// list of game piece options and then defers to <see cref="IconRenderer.RenderIcons(PieceIconSet.PieceIconEntry[], Color)"/> /// to build out thumbnails of the game pieces. /// </summary> /// <param name="color">The color that each game piece should be rendered with</param> private void RebuildGamePieceOptions(Color color) { pieceDropdown.ClearOptions(); List <Dropdown.OptionData> piecesOptions = new List <Dropdown.OptionData>(); GameObject iconCameraObject = GameObject.Find("Icon Camera"); IconRenderer iconRenderer = iconCameraObject.GetComponent <IconRenderer>(); iconRenderer.RenderIcons(filteredPieces, color); foreach (var piece in filteredPieces) { Sprite s = Sprite.Create(piece.texture, new Rect(0, 0, 256, 256), Vector2.zero); s.name = piece.modelName; Dropdown.OptionData data = new Dropdown.OptionData() { image = s, text = piece.modelName }; piecesOptions.Add(data); } pieceDropdown.AddOptions(piecesOptions); if (piecesOptions.Count > 0) { pieceDropdown.value = 0; } }
void Start() { _manager = this; database = _database; #if !UNITY_EDITOR toucControl = true; #endif if (!toucControl) { CrossPlatformInputManager.useHardwareInput(); } else { CrossPlatformInputManager.useTouchInput(); } UIHandler = _UIHandler; path = Application.persistentDataPath; Debug.Log("Game started at " + path); mainThread = Thread.CurrentThread; Timer.start("Loading Materials"); for (int i = 0; i <= Enum.GetValues(typeof(MyMaterial)).Length - 1; i++) { ((MyMaterial)i).loadMaterial(); } Timer.endAndPrint("Loading Materials"); halfMaxChunkCount = (maxChunkCount / 2); chunkPrefab = _chunkPrefab; chunks = new Chunk[maxChunkCount, 50, maxChunkCount]; currentTerrainGenerator = new TerrainGenerator(); //INITIATIONS ItemMeshCreator.init(); IconRenderer.init(); if (startGame) { //LOAD SAVE FILE save = SaveLoader.load(saveFileName); currentTerrainGenerator.initiateMap(); //INITIALIZE PLAYER if (save.player == null) { save.player = new Player(spawnPoint); } save.player.init(playerPrefab); //INITIALIZE UI _UIHandler.init(); } //START BACKGOUND THREAD if (startGame) { Thread thread = new Thread(Timer.doAsycTick); thread.IsBackground = true; thread.Start(); } }
protected override void LoadRenderers() { _default = LoadRenderer <IconRenderer>(Skin, _basename); _hover = LoadRenderer <IconRenderer>(Skin, _basename + "_hover"); _pressed = LoadRenderer <IconRenderer>(Skin, _basename + "_pressed"); _textRenderer = RenderManager.SpriteFonts[FontName]; }
public void drawDesktop(IconRenderer ir, FontRenderer dfr) { ir.renderIcon(5, 20, 'C', 4); dfr.renderString(10, 65, "MY PC"); ir.renderIcon(65, 20, 'N', 4); dfr.renderString(62, 65, "NOTEPAD"); }
void Window_ClientSizeChanged(object sender, EventArgs e) { if (GraphicsDevice.Viewport.Width < 640 || GraphicsDevice.Viewport.Height < 480) ScaleFactor = 0.5f; else if (GraphicsDevice.Viewport.Width < 978 || GraphicsDevice.Viewport.Height < 720) ScaleFactor = 1.0f; else ScaleFactor = 1.5f; IconRenderer.PrepareEffects(this); UpdateCamera(); CreateRenderTarget(); }
public CommandPost(Vector3 position, Team team) : base(position) { startPosition = position; Team = team; positionAnim = new Vector3Anim(); // Setup physics body float cubeSize = 1.5f; // blockSize * dims Vector3 size = new Vector3(cubeSize * 9, cubeSize * 10, cubeSize * 7); PhysicsBody = new VoxelPhysicsBody(size, 2f, cubeSize); AddComponent(PhysicsBody); PhysicsBody.CanCollideWithSoft = true; PhysicsBody.CanBePushedBySoft = false; PhysicsBody.IsAffectedByGravity = true; PhysicsBody.CanBeSteppedOn = false; if (!GlobalNetwork.IsServer) { // Setup renderer renderer = new VoxelRenderComponent(); AddComponent(renderer); string modelPath = team == Team.A ? "Models/commandpost-red.aosm" : "Models/commandpost-blue.aosm"; renderer.VoxelObject = AssetManager.LoadVoxelObject(modelPath, BufferUsageHint.StaticDraw); if (commandpostIconTex == null) { commandpostIconTex = GLoader.LoadTexture("Textures/Gui/commandpost.png"); } // Setup icon IconRenderer icon = new IconRenderer(); AddComponent(icon); icon.Size = new Vector2(16, 16); icon.Image = new Image(commandpostIconTex, team == Team.A ? new Color(255, 0, 0, 128) : new Color(0, 0, 255, 128)); icon.Offset = renderer.VoxelObject.UnitSize / 2f; } }
public static void renderWindow(BufferedDisplayDriver display, IconRenderer ir, FontRenderer fr) { if (isVisible) { for (int i = 0; i <= width; i++) { for (int i2 = 0; i2 <= height; i2++) { display.setPixel(i + x, i2 + y, 41); } } for (int i = 0; i <= width; i++) { for (int i2 = 0; i2 <= 20; i2++) { display.setPixel(x + i, y + i2, 40); } } for (int i = 0; i <= width; i++) { display.setPixel(i + x, y, 25); display.setPixel(i + x, y + 20, 25); display.setPixel(i + x, y + height, 25); } for (int i = 0; i <= height; i++) { display.setPixel(x, y + i, 25); display.setPixel(x + width, y + i, 25); } ir.renderIcon(x + width - 20, y, 'X', 2); ir.renderIcon(x + width - 40, y, 'M', 2); ir.renderIcon(x + width - 60, y, '_', 2); fr.renderString(x + 10, y + 9, "NOTEPAD", 55, 2, 2); } }
public RenderVideo() { SetStyle( ControlStyles.Opaque | ControlStyles.UserPaint | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true); var allocator = new AllocatorPresenter(); _allocator = allocator; _videoLayer = new VideoRenderer(allocator); _osdLayer = new OsdRenderer(allocator); _iconLayer = new IconRenderer(allocator); _videoLayer.IsVisible = true; _allocator.Register(_videoLayer); _allocator.Register(_osdLayer); _allocator.Register(_iconLayer); _allocator.PresentCompleted += AllocatorPresenter_OnPresentCompleted; IsSyncSupported = true; VideoFilter = VideoFilter.None; ScaleMode = ScaleMode.FixedPixelSize; }
protected override void Initialize() { InputModules = new List<IGameplayModule>(); GraphicalModules = new List<IGameplayModule>(); base.Initialize(); // (calls LoadContent) Camera = new Camera(GraphicsDevice.Viewport.AspectRatio, 70.0f, 0.1f, 1000.0f); UpdateCamera(); White1x1 = new Texture2D(GraphicsDevice, 1, 1); White1x1.SetData<Color>(new[] { Color.White }); Audio = new AudioManager(); Audio.LoadDefaultPacks(Content); SkyModule = new SkyModule(this); ChunkModule = new ChunkModule(this); DebugInfoModule = new DebugInfoModule(this, Pixel); ChatModule = new ChatModule(this, Pixel); var hud = new HUDModule(this, Pixel); var windowModule = new WindowModule(this, Pixel); GraphicalModules.Add(SkyModule); GraphicalModules.Add(ChunkModule); GraphicalModules.Add(new HighlightModule(this)); GraphicalModules.Add(hud); GraphicalModules.Add(ChatModule); GraphicalModules.Add(windowModule); GraphicalModules.Add(DebugInfoModule); InputModules.Add(windowModule); InputModules.Add(DebugInfoModule); InputModules.Add(ChatModule); InputModules.Add(new HUDModule(this, Pixel)); InputModules.Add(ControlModule = new PlayerControlModule(this)); Client.PropertyChanged += HandleClientPropertyChanged; Client.Connect(EndPoint); BlockProvider.BlockRepository = BlockRepository; var itemRepository = new ItemRepository(); itemRepository.DiscoverItemProviders(); ItemRepository = itemRepository; BlockProvider.ItemRepository = ItemRepository; IconRenderer.CreateBlocks(this, BlockRepository); var centerX = GraphicsDevice.Viewport.Width / 2; var centerY = GraphicsDevice.Viewport.Height / 2; Mouse.SetPosition(centerX, centerY); MouseComponent.Scroll += OnMouseComponentScroll; MouseComponent.Move += OnMouseComponentMove; MouseComponent.ButtonDown += OnMouseComponentButtonDown; MouseComponent.ButtonUp += OnMouseComponentButtonUp; KeyboardComponent.KeyDown += OnKeyboardKeyDown; KeyboardComponent.KeyUp += OnKeyboardKeyUp; GamePadComponent.ButtonDown += OnGamePadButtonDown; GamePadComponent.ButtonUp += OnGamePadButtonUp; CreateRenderTarget(); SpriteBatch = new SpriteBatch(GraphicsDevice); ThreadID = Thread.CurrentThread.ManagedThreadId; }
protected override void LoadRenderers() { _checkbox = LoadRenderer <IconRenderer>(Skin, "checkbox_icon"); _checkbox_checked = LoadRenderer <IconRenderer>(Skin, "checkbox_icon_checked"); }
public WorldObject(Vector3 position) : base(position) { Icon = new IconRenderer(); AddComponent(Icon); }
public void draw(FontRenderer fr, FontRenderer dfr, Boolean startMenu, IconRenderer ir) { display.clearReal(63); for (int i = 0; i <= 120; i++) { for (int i2 = 0; i2 <= 15; i2++) { display.setPixel(i, i2, 25); } } for (int i = 120; i <= 320; i++) { for (int i2 = 0; i2 <= 15; i2++) { display.setPixel(i, i2, 43); } } drawDesktop(ir, dfr); if (startMenu) { for (int i = 0; i <= 120; i++) { for (int i2 = 0; i2 <= 90; i2++) { display.setPixel(i, i2 + 15, 43); } } for (int i = 0; i <= 85; i++) { for (int i2 = 0; i2 <= 15; i2++) { display.setPixel(i + 25, i2 + 25, 25); } } ir.renderIcon(10, 27, 'C', 1); fr.renderString(30, 30, "MY COMPUTER"); for (int i = 0; i <= 85; i++) { for (int i2 = 0; i2 <= 15; i2++) { display.setPixel(i + 25, i2 + 50, 25); } } ir.renderIcon(10, 52, 'N', 1); fr.renderString(30, 55, "NOTEPAD"); for (int i = 0; i <= 85; i++) { for (int i2 = 0; i2 <= 15; i2++) { display.setPixel(i + 25, i2 + 80, 25); } } ir.renderIcon(10, 82, 'P', 1); fr.renderString(30, 85, "REBOOT"); } if (second != time.Second()) { fps = temp; temp = 0; second = time.Second(); } else { temp++; } fr.renderString(5, 5, "HELIX PYRO OS"); fr.renderString(125, 5, time.Hour().ToString() + ":" + time.Minute().ToString() + ":" + time.Second().ToString() + " " + fps.ToString()); }
protected virtual bool[,] renderDialogEntry(IViewBoxModel view) { int i = 0; while (_isRendering && i++ < 10) { Thread.Sleep(5); } if (i >= 10) { return(cachedResult); } try { bool[,] m = cachedResult; lock (_synckLock) { _isRendering = true; if (HasChanged && Entry != null && view != null && view.ContentBox.Width > 0) // renew rendering result { bool[,] icon = emptyMatrix; // get icon if (IconRenderer != null) { icon = IconRenderer.RenderMatrix(view, Entry); } // calculate the space for the text to start int padding_left = (icon != null && icon.GetLength(1) > 0) ? icon.GetLength(1) + IconTextSpace : 0; // adapt the view IViewBoxModel view2 = new DummyViewBox(view); if (padding_left > 0) { var contentBox = view2.ContentBox; contentBox.Width = contentBox.Width - padding_left; view2.ContentBox = contentBox; } bool[,] text = emptyMatrix; if (BrailleRenderer != null) { string title = Entry.Title; if (Entry.Type == DialogEntryType.Group) { title = ll.GetTrans("grp.title.wrap", title); } text = BrailleRenderer.RenderMatrix(view2, title); } m = combineMatrices(icon, text, view); // TODO: set content dimensions? } cachedResult = m; HasChanged = false; } return(m); } finally { _isRendering = false; } }
private void DrawWindowArea(IWindowArea area, int _x, int _y, Rectangle frame, RenderStage stage) { var mouse = Mouse.GetState().Position.ToVector2(); var scale = new Point((int)(16 * Game.ScaleFactor * 2)); var origin = new Point((int)( Game.GraphicsDevice.Viewport.Width / 2 - Scale(frame.Width / 2) + Scale(_x)), (int)(Game.GraphicsDevice.Viewport.Height / 2 - Scale(frame.Height / 2) + Scale(_y))); for (int i = 0; i < area.Length; i++) { var item = area[i]; int x = (int)((i % area.Width) * Scale(18)); int y = (int)((i / area.Width) * Scale(18)); if (area is CraftingWindowArea) { // yes I know this is a crappy hack, bite me if (i == 0) { if (area.Width == 2) { x = (int)Scale(144 - _x); y = (int)Scale(36 - _y); } else { x = (int)Scale(124 - _x); y = (int)Scale(35 - _y); } } else { i--; x = (int)((i % area.Width) * Scale(18)); y = (int)((i / area.Width) * Scale(18)); i++; } } var position = origin + new Point(x, y); var rect = new Rectangle(position, scale); if (stage == RenderStage.Sprites && rect.Contains(mouse)) { SelectedSlot = (short)(area.StartIndex + i); SpriteBatch.Draw(Game.White1x1, rect, new Color(Color.White, 150)); } if (item.Empty) { continue; } var provider = Game.ItemRepository.GetItemProvider(item.ID); var texture = provider.GetIconTexture((byte)item.Metadata); if (texture != null && stage == RenderStage.Sprites) { IconRenderer.RenderItemIcon(SpriteBatch, Items, provider, (byte)item.Metadata, rect, Color.White); } if (texture == null && stage == RenderStage.Models && provider is IBlockProvider) { IconRenderer.RenderBlockIcon(Game, provider as IBlockProvider, (byte)item.Metadata, rect); } if (stage == RenderStage.Text && item.Count > 1) { int offset = 10; if (item.Count >= 10) { offset -= 6; } position += new Point((int)Scale(offset), (int)Scale(5)); Font.DrawText(SpriteBatch, position.X, position.Y, item.Count.ToString(), Game.ScaleFactor); } } }
public void Draw(GameTime gameTime) { if (Game.Client.CurrentWindow != null) { // TODO: slot == -999 when outside of the window and -1 when inside the window, but not on an item SelectedSlot = -999; IItemProvider provider = null; var scale = new Point((int)(16 * Game.ScaleFactor * 2)); var mouse = Mouse.GetState().Position.ToVector2().ToPoint() - new Point((int)(8 * Game.ScaleFactor * 2)); var rect = new Rectangle(mouse, scale); if (!HeldItem.Empty) { provider = Game.ItemRepository.GetItemProvider(HeldItem.ID); } SpriteBatch.Begin(samplerState: SamplerState.PointClamp, blendState: BlendState.NonPremultiplied); SpriteBatch.Draw(Game.White1x1, new Rectangle(0, 0, Game.GraphicsDevice.Viewport.Width, Game.GraphicsDevice.Viewport.Height), new Color(Color.Black, 180)); switch (Game.Client.CurrentWindow.Type) { case -1: SpriteBatch.Draw(Inventory, new Vector2( Game.GraphicsDevice.Viewport.Width / 2 - Scale(InventoryWindowRect.Width / 2), Game.GraphicsDevice.Viewport.Height / 2 - Scale(InventoryWindowRect.Height / 2)), InventoryWindowRect, Color.White, 0, Vector2.Zero, Game.ScaleFactor * 2, SpriteEffects.None, 1); DrawInventoryWindow(RenderStage.Sprites); break; case 1: // Crafting bench SpriteBatch.Draw(Crafting, new Vector2( Game.GraphicsDevice.Viewport.Width / 2 - Scale(CraftingWindowRect.Width / 2), Game.GraphicsDevice.Viewport.Height / 2 - Scale(CraftingWindowRect.Height / 2)), CraftingWindowRect, Color.White, 0, Vector2.Zero, Game.ScaleFactor * 2, SpriteEffects.None, 1); DrawCraftingWindow(RenderStage.Sprites); break; } if (provider != null) { if (provider.GetIconTexture((byte)HeldItem.Metadata) != null) { IconRenderer.RenderItemIcon(SpriteBatch, Items, provider, (byte)HeldItem.Metadata, rect, Color.White); } } SpriteBatch.End(); switch (Game.Client.CurrentWindow.Type) { case -1: DrawInventoryWindow(RenderStage.Models); break; case 1: // Crafting bench DrawCraftingWindow(RenderStage.Models); break; } if (provider != null) { if (provider.GetIconTexture((byte)HeldItem.Metadata) == null && provider is IBlockProvider) { IconRenderer.RenderBlockIcon(Game, provider as IBlockProvider, (byte)HeldItem.Metadata, rect); } } SpriteBatch.Begin(samplerState: SamplerState.PointClamp, blendState: BlendState.NonPremultiplied); switch (Game.Client.CurrentWindow.Type) { case -1: DrawInventoryWindow(RenderStage.Text); break; case 1: // Crafting bench DrawCraftingWindow(RenderStage.Text); break; } if (provider != null) { if (HeldItem.Count > 1) { int offset = 10; if (HeldItem.Count >= 10) { offset -= 6; } mouse += new Point((int)Scale(offset), (int)Scale(5)); Font.DrawText(SpriteBatch, mouse.X, mouse.Y, HeldItem.Count.ToString(), Game.ScaleFactor); } } if (SelectedSlot >= 0) { var item = Game.Client.CurrentWindow[SelectedSlot]; if (!item.Empty) { var p = Game.ItemRepository.GetItemProvider(item.ID); var size = Font.MeasureText(p.DisplayName); mouse = Mouse.GetState().Position.ToVector2().ToPoint(); mouse += new Point(10, 10); SpriteBatch.Draw(Game.White1x1, new Rectangle(mouse, new Point(size.X + 10, size.Y + 15)), new Color(Color.Black, 200)); Font.DrawText(SpriteBatch, mouse.X + 5, mouse.Y, p.DisplayName); } } SpriteBatch.End(); } }
private void OnEnable() { iconRenderer = target as IconRenderer; }