Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions demo/Blackholio/server-cpp/spacetimedb/src/lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,13 @@ SPACETIMEDB_TABLE(CircleRecombineTimer, circle_recombine_timer, Private)
FIELD_PrimaryKeyAutoInc(circle_recombine_timer, scheduled_id)
SPACETIMEDB_SCHEDULE(circle_recombine_timer, 1, circle_recombine)

struct ConsumeEntityEvent {
int32_t consumed_entity_id;
int32_t consumer_entity_id;
};
SPACETIMEDB_STRUCT(ConsumeEntityEvent, consumed_entity_id, consumer_entity_id)
SPACETIMEDB_TABLE(ConsumeEntityEvent, consume_entity_event, Public, true)

struct ConsumeEntityTimer {
uint64_t scheduled_id;
ScheduleAt scheduled_at;
Expand Down Expand Up @@ -594,6 +601,12 @@ SPACETIMEDB_REDUCER(consume_entity, ReducerContext ctx, ConsumeEntityTimer reque
Entity consumed_entity = consumed_opt.value();
Entity consumer_entity = consumer_opt.value();
consumer_entity.mass += consumed_entity.mass;

ConsumeEntityEvent consume_event{
consumed_entity.entity_id,
consumer_entity.entity_id
};
ctx.db[consume_entity_event].insert(consume_event);

auto destroy_result = destroy_entity(ctx, consumed_entity.entity_id);
if (destroy_result.is_err()) {
Expand Down
13 changes: 13 additions & 0 deletions demo/Blackholio/server-csharp/Lib.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,13 @@ public partial struct CircleRecombineTimer
public ScheduleAt scheduled_at;
public int player_id;
}

[Table(Accessor = "consume_entity_event", Public = true, Event = true)]
public partial struct ConsumeEntityEvent
{
public int consumed_entity_id;
public int consumer_entity_id;
}

[Table(Accessor = "consume_entity_timer", Scheduled = nameof(ConsumeEntity), ScheduledAt = nameof(scheduled_at))]
public partial struct ConsumeEntityTimer
Expand Down Expand Up @@ -433,6 +440,12 @@ public static void ConsumeEntity(ReducerContext ctx, ConsumeEntityTimer request)
{
var consumed_entity = ctx.Db.entity.entity_id.Find(request.consumed_entity_id) ?? throw new Exception("Consumed entity doesn't exist");
var consumer_entity = ctx.Db.entity.entity_id.Find(request.consumer_entity_id) ?? throw new Exception("Consumer entity doesn't exist");

ctx.Db.consume_entity_event.Insert(new ConsumeEntityEvent
{
consumed_entity_id = consumed_entity.entity_id,
consumer_entity_id = consumer_entity.entity_id
});

consumer_entity.mass += consumed_entity.mass;
DestroyEntity(ctx, consumed_entity.entity_id);
Expand Down
Loading