{"id":16286688,"url":"https://github.com/pierocastillo/redux","last_synced_at":"2025-04-09T05:18:14.711Z","repository":{"id":156861435,"uuid":"338202620","full_name":"PieroCastillo/Redux","owner":"PieroCastillo","description":"[READONLY] The offical repository is this: https://github.com/Redux-Engine/Redux, full C# based.","archived":false,"fork":false,"pushed_at":"2021-02-16T04:02:29.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-13T21:48:09.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PieroCastillo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-12T02:01:10.000Z","updated_at":"2021-02-17T18:12:12.000Z","dependencies_parsed_at":"2023-09-26T00:44:04.464Z","dependency_job_id":null,"html_url":"https://github.com/PieroCastillo/Redux","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.2857142857142857,"last_synced_commit":"c71e5f727a3b8fb839c58af9a2843660eb19ad6d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PieroCastillo%2FRedux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PieroCastillo%2FRedux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PieroCastillo%2FRedux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PieroCastillo%2FRedux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PieroCastillo","download_url":"https://codeload.github.com/PieroCastillo/Redux/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980847,"owners_count":21027809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T19:43:35.575Z","updated_at":"2025-04-09T05:18:14.694Z","avatar_url":"https://github.com/PieroCastillo.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Redux\nA 3D game engine, full C# based.\n\n# Objectives:\n\n- Use Vulkan only.\n- Be easy to use.\n- The objects control the Render, a sample:\n```C#\npublic class CustomComponent : Component\n{\n  public void Render(RenderContext context)\n  {\n    context.DrawEsphere(bounds: this.Hitbox, radius: 30d, texture: new ImageTexture(@\"Assets/Image.png\"));\n  }\n}\n```\n\n- Has the Avalonia/WPF model or be an AvaloniaControl(more possible this)\n \nWith Avalonia/WPF model:\n```c#\npublic class MainWindow : Redux.Window\n{\n  protected override void Loaded()\n  {\n    Content = new MainView();\n  }\n}\n```\nAs Avalonia Control\n```c#\n//GameView inherits Avalonia.Control\npublic class MainGameView : Redux.Avalonia.GameView\n{\n  // something\n}\n```\n\n- Can import OBJ/FBX files\n```c#\npublic class CustomComp : Component\n{\n  readonly Redux3DModel model = new Redux3DModel(@\"assets/model.obj\");\n  \n  protected override Size Measure(Size availableSize) =\u003e model.Measure(avaiableSize);\n  \n  public override void Render(RenderContext context)\n  {\n    context.DrawModel(bounds: this.HitBox, model: model, texture: model.Texture);\n  }\n}\n```\n- Supports Non-FPS-dependent Animation System\n```c#\npublic class CustomComp : Component\n{\n  protected override void Loaded()\n  {\n    base.Loaded();\n    var anim = new Animation();\n    anim.Clock = ReduxLocator.Current.GetService\u003cIReduxGlobalClock\u003e();\n    anim.Duration = new TimeSpan(hours: 0, minutes: 0, seconds: 30);\n    var points = this.AsModel().GetPoints(); //returns Redux.Points\n    var topP = points.TryGetPointRelativeFrom(x: 30,y: 20,z: 30); //get a point if that exist, if not, creates a new point.\n    anim.Frames = new AnimationFrames()\n    {\n      new AnimationFrame(cue: 0) { topP.X = 30, topP.Y = 20, topP.Z  = 30  },\n      new AnimationFrame(cue: 100) { topP.X = 130, topP.Y = 120, topP.Z  = 130  }\n    }\n    this.Animations.Insert(0, anim);\n  }\n  \n  protected override void OnPointerEnter(ReduxEventsArgs e)\n  {\n    var anim = this.Animations[0];\n    \n    anim.Starts();\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierocastillo%2Fredux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpierocastillo%2Fredux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierocastillo%2Fredux/lists"}